[dm-devel] [PATCH 03/42] Fixup pathgroup allocation in disassemble_map()
Hannes Reinecke
hare at suse.de
Tue Jan 8 13:53:41 UTC 2013
The check for empty path groups in disassemble_map() is not quite
correct; we might end up removing the pathgroup vector even though
there are some entries in it.
Signed-off-by: Hannes Reinecke <hare at suse.de>
---
libmultipath/dmparser.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/libmultipath/dmparser.c b/libmultipath/dmparser.c
index b3c52fc..a45854d 100644
--- a/libmultipath/dmparser.c
+++ b/libmultipath/dmparser.c
@@ -232,13 +232,16 @@ disassemble_map (vector pathvec, char * params, struct multipath * mpp)
num_pg = atoi(word);
FREE(word);
- if (num_pg > 0 && !mpp->pg) {
- mpp->pg = vector_alloc();
-
- if (!mpp->pg)
- return 1;
- } else
+ if (num_pg > 0) {
+ if (!mpp->pg) {
+ mpp->pg = vector_alloc();
+ if (!mpp->pg)
+ return 1;
+ }
+ } else {
+ free_pgvec(mpp->pg, KEEP_PATHS);
mpp->pg = NULL;
+ }
/*
* first pg to try
--
1.7.4.2
More information about the dm-devel
mailing list