X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudevd.c;h=0bacb3994b00a716fa2af15aaaa64af7391fa4c5;hp=21fd6f82e7355acbad3d0c3074d39783dd23791b;hb=c6243a414e5ea233862445db0e57d6033879985f;hpb=54808d77a3a62172fc6acbeec968be67c207509e diff --git a/udev/udevd.c b/udev/udevd.c index 21fd6f82e..0bacb3994 100644 --- a/udev/udevd.c +++ b/udev/udevd.c @@ -310,26 +310,24 @@ static int mem_size_mb(void) static int compare_devpath(const char *running, const char *waiting) { - int i; + int i = 0; - for (i = 0; i < UTIL_PATH_SIZE; i++) { - /* identical device event found */ - if (running[i] == '\0' && waiting[i] == '\0') - return 1; + while (running[i] == waiting[i] && running[i] != '\0') + i++; - /* parent device event found */ - if (running[i] == '\0' && waiting[i] == '/') - return 2; + /* identical device event found */ + if (running[i] == '\0' && waiting[i] == '\0') + return 1; - /* child device event found */ - if (running[i] == '/' && waiting[i] == '\0') - return 3; + /* parent device event found */ + if (running[i] == '\0' && waiting[i] == '/') + return 2; - /* no matching event */ - if (running[i] != waiting[i]) - break; - } + /* child device event found */ + if (running[i] == '/' && waiting[i] == '\0') + return 3; + /* no matching event */ return 0; }