diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-06 11:52:23 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-07-06 11:52:23 +0000 |
commit | 58f59a25ee82dea19aeee082f52846244929a95e (patch) | |
tree | 25dfe73eddd983260136dea4b046f3b8f13ba725 /modutils/modprobe-small.c | |
parent | cee0dfcc6a157f54cb517fdc3c438c7e0f67ebc9 (diff) | |
download | busybox-w32-58f59a25ee82dea19aeee082f52846244929a95e.tar.gz busybox-w32-58f59a25ee82dea19aeee082f52846244929a95e.tar.bz2 busybox-w32-58f59a25ee82dea19aeee082f52846244929a95e.zip |
modprobe-small: match aliases with fnmatch(), making
shell pattern-specified alias names in module bodies work.
Diffstat (limited to 'modutils/modprobe-small.c')
-rw-r--r-- | modutils/modprobe-small.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c index 3aa06d57e..e82ee4cef 100644 --- a/modutils/modprobe-small.c +++ b/modutils/modprobe-small.c | |||
@@ -385,7 +385,11 @@ static module_info* find_alias(const char *alias) | |||
385 | /* Does matching substring exist? */ | 385 | /* Does matching substring exist? */ |
386 | replace(desc, ' ', '\0'); | 386 | replace(desc, ' ', '\0'); |
387 | for (s = desc; *s; s += strlen(s) + 1) { | 387 | for (s = desc; *s; s += strlen(s) + 1) { |
388 | if (strcmp(s, alias) == 0) { | 388 | /* aliases in module bodies can be defined with |
389 | * shell patterns. Example: | ||
390 | * "pci:v000010DEd000000D9sv*sd*bc*sc*i*". | ||
391 | * Plain strcmp() won't catch that */ | ||
392 | if (fnmatch(s, alias, 0) == 0) { | ||
389 | free(desc); | 393 | free(desc); |
390 | dbg1_error_msg("found alias '%s' in module '%s'", | 394 | dbg1_error_msg("found alias '%s' in module '%s'", |
391 | alias, modinfo[i].pathname); | 395 | alias, modinfo[i].pathname); |