diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-02-26 12:00:29 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-02-26 12:00:29 +0000 |
commit | f62f761936ed33fa89680f5d129db55bee610eb9 (patch) | |
tree | ddb54a431f79c3f70663ea0a022a302eeeec8659 | |
parent | a76f10b544b4ffe4b0aaf41eede1aeb9b13a95e8 (diff) | |
download | busybox-w32-f62f761936ed33fa89680f5d129db55bee610eb9.tar.gz busybox-w32-f62f761936ed33fa89680f5d129db55bee610eb9.tar.bz2 busybox-w32-f62f761936ed33fa89680f5d129db55bee610eb9.zip |
modutils: overflow fix
-rw-r--r-- | modutils/modutils.c | 2 | ||||
-rw-r--r-- | modutils/modutils.h | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/modutils/modutils.c b/modutils/modutils.c index 0d7d72d8b..8836f7c69 100644 --- a/modutils/modutils.c +++ b/modutils/modutils.c | |||
@@ -71,7 +71,7 @@ char * FAST_FUNC filename2modname(const char *filename, char *modname) | |||
71 | if (modname == NULL) | 71 | if (modname == NULL) |
72 | modname = xmalloc(MODULE_NAME_LEN); | 72 | modname = xmalloc(MODULE_NAME_LEN); |
73 | from = bb_get_last_path_component_nostrip(filename); | 73 | from = bb_get_last_path_component_nostrip(filename); |
74 | for (i = 0; i < MODULE_NAME_LEN && from[i] != '\0' && from[i] != '.'; i++) | 74 | for (i = 0; i < (MODULE_NAME_LEN-1) && from[i] != '\0' && from[i] != '.'; i++) |
75 | modname[i] = (from[i] == '-') ? '_' : from[i]; | 75 | modname[i] = (from[i] == '-') ? '_' : from[i]; |
76 | modname[i] = 0; | 76 | modname[i] = 0; |
77 | 77 | ||
diff --git a/modutils/modutils.h b/modutils/modutils.h index 32ee18b06..a609ea06a 100644 --- a/modutils/modutils.h +++ b/modutils/modutils.h | |||
@@ -16,8 +16,9 @@ | |||
16 | # pragma GCC visibility push(hidden) | 16 | # pragma GCC visibility push(hidden) |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | /* As defined in linux/include/linux/module.h */ | 19 | /* linux/include/linux/module.h has 64, but this is also used |
20 | #define MODULE_NAME_LEN 64 | 20 | * internally for the maximum alias name length, which can be quite long */ |
21 | #define MODULE_NAME_LEN 256 | ||
21 | 22 | ||
22 | const char *moderror(int err) FAST_FUNC; | 23 | const char *moderror(int err) FAST_FUNC; |
23 | llist_t *llist_find(llist_t *first, const char *str) FAST_FUNC; | 24 | llist_t *llist_find(llist_t *first, const char *str) FAST_FUNC; |