From 49b33c1f215d5d58838845cbbaefc007bd0f9ac7 Mon Sep 17 00:00:00 2001 From: Anssi Hannula Date: Wed, 19 Mar 2014 01:26:00 +0200 Subject: [PATCH] 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. --- tools/depmod.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } -- 2.47.2