diff options
Diffstat (limited to 'uevent_debug.patch')
-rw-r--r-- | uevent_debug.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/uevent_debug.patch b/uevent_debug.patch new file mode 100644 index 0000000..39c424d --- /dev/null +++ b/uevent_debug.patch @@ -0,0 +1,28 @@ +Index: multipath-tools-080515/multipathd/main.c +=================================================================== +--- multipath-tools-080515.orig/multipathd/main.c ++++ multipath-tools-080515/multipathd/main.c +@@ -619,14 +619,20 @@ uxsock_trigger (char * str, char ** repl + static int + uev_discard(char * devpath) + { ++ char *tmp; + char a[10], b[10]; + + /* + * keep only block devices, discard partitions + */ +- if (sscanf(devpath, "/block/%10s", a) != 1 || +- sscanf(devpath, "/block/%10[^/]/%10s", a, b) == 2) { +- condlog(4, "discard event on %s", devpath); ++ tmp = strstr(devpath, "/block/"); ++ if (tmp == NULL){ ++ condlog(0, "no /block/ in '%s'", devpath); ++ return 1; ++ } ++ if (sscanf(tmp, "/block/%10s", a) != 1 || ++ sscanf(tmp, "/block/%10[^/]/%10s", a, b) == 2) { ++ condlog(0, "discard event on %s", devpath); + return 1; + } + return 0; |