[dm-devel] [PATCH V2 0/3] multipath config fixes

Benjamin Marzinski bmarzins at redhat.com
Wed Dec 14 21:38:17 UTC 2022


The first two patches are a cleanup and a fix for a memory leak in the
config code. The third patch improves multipath's validation of the
strings it passes directly into the table, features, path_selector, and
hardware_handler.  These three strings all have argument counts, and
getting them wrong causes the kernel to parse the table incorrectly.
When this happens the table load fails, but the error messages from the
kernel are often completely unhelpful.  A bad argument count will cause
the rest of the table to be parsed incorrectly, and the kernel might not
hit an unworkable token till later in the parsing.  Multipath now makes
sure that the count matches the actual number of arguments that it is
passing.

V2 Changes (based on suggestions from Martin Wilck):
1/3: unrolled loop in validate_config_strvec() to explicitly check the
      possible quote strings
3/3: spaces is now a "const char * const" and doesn't include '\n'


Benjamin Marzinski (3):
  libmpathutil: simplify set_value and validate_config_strvec
  libmultipath: don't leak memory on invalid strings
  libmutipath: validate the argument count of config strings

 libmpathutil/parser.c | 109 +++++++++++++++++++---------------------
 libmultipath/dict.c   | 112 ++++++++++++++++++++++++++++++++++++++----
 2 files changed, 154 insertions(+), 67 deletions(-)

-- 
2.17.2



More information about the dm-devel mailing list