From: Anssi Hannula Date: Tue, 18 Mar 2014 23:26:00 +0000 (+0200) Subject: depmod: do not allow partial matches with "search" directive X-Git-Tag: v17~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=49b33c1;p=thirdparty%2Fkmod.git depmod: do not allow partial matches with "search" directive Currently e.g. "search foo foobar built-in" will cause unpredictable results if baz.ko is in both foo/ and foobar/, since "foo" in search may match both of those directories and the preferred module therefore depends on processing order. Fix the code to ensure that the match is performed on full pathname components only. --- diff --git a/tools/depmod.c b/tools/depmod.c index 6b5d21c8..37e6afd7 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -1153,10 +1153,10 @@ static int depmod_module_is_higher_priority(const struct depmod *depmod, const s DBG("search %s\n", se->builtin ? "built-in" : se->path); if (se->builtin) bprio = i; - else if (newlen >= se->len && + else if (newlen > se->len && newpath[se->len] == '/' && memcmp(se->path, newpath, se->len) == 0) newprio = i; - else if (oldlen >= se->len && + else if (oldlen > se->len && oldpath[se->len] == '/' && memcmp(se->path, oldpath, se->len) == 0) oldprio = i; }