]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
Replace NAME_MAX with PATH_MAX for module aliases
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Sun, 8 Jan 2012 03:02:29 +0000 (01:02 -0200)
committerLucas De Marchi <lucas.demarchi@profusion.mobi>
Sun, 8 Jan 2012 03:02:29 +0000 (01:02 -0200)
Module aliases can be bigger than NAME_MAX. So, replace with PATH_MAX
that is bigger enough to hold them.

Technically in some places NAME_MAX would be sufficient (those using
module names only), but they use functions that can be called with
alias. So increase the buffers in these cases to PATH_MAX too.

libkmod/libkmod-module.c
libkmod/libkmod-util.c
libkmod/libkmod-util.h
tools/kmod-depmod.c

index f2359a9d7fac07461ab85c2e98a214843b5cc061..880bac5f0ae6af173e366ae07340e048abe0acf4 100644 (file)
@@ -185,7 +185,7 @@ KMOD_EXPORT int kmod_module_new_from_name(struct kmod_ctx *ctx,
 {
        struct kmod_module *m;
        size_t namelen;
-       char name_norm[NAME_MAX];
+       char name_norm[PATH_MAX];
        char *namesep;
 
        if (ctx == NULL || name == NULL || mod == NULL)
@@ -237,11 +237,11 @@ int kmod_module_new_from_alias(struct kmod_ctx *ctx, const char *alias,
                                const char *name, struct kmod_module **mod)
 {
        int err;
-       char key[NAME_MAX];
+       char key[PATH_MAX];
        size_t namelen = strlen(name);
        size_t aliaslen = strlen(alias);
 
-       if (namelen + aliaslen + 2 > NAME_MAX)
+       if (namelen + aliaslen + 2 > PATH_MAX)
                return -ENAMETOOLONG;
 
        memcpy(key, name, namelen);
@@ -283,7 +283,7 @@ KMOD_EXPORT int kmod_module_new_from_path(struct kmod_ctx *ctx,
        struct kmod_module *m;
        int err;
        struct stat st;
-       char name[NAME_MAX];
+       char name[PATH_MAX];
        char *abspath;
        size_t namelen;
 
@@ -434,7 +434,7 @@ KMOD_EXPORT int kmod_module_new_from_lookup(struct kmod_ctx *ctx,
                                                struct kmod_list **list)
 {
        int err;
-       char alias[NAME_MAX];
+       char alias[PATH_MAX];
 
        if (ctx == NULL || given_alias == NULL)
                return -ENOENT;
index 75e2fea7973e28efb5a3545eed4efbbdee3beb58..344d94aa439496c9d0e8f140e1499d4b77be1fbe 100644 (file)
@@ -121,11 +121,11 @@ char *underscores(struct kmod_ctx *ctx, char *s)
        return s;
 }
 
-inline int alias_normalize(const char *alias, char buf[NAME_MAX], size_t *len)
+inline int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len)
 {
        size_t s;
 
-       for (s = 0; s < NAME_MAX - 1; s++) {
+       for (s = 0; s < PATH_MAX - 1; s++) {
                const char c = alias[s];
                switch (c) {
                case '-':
@@ -160,12 +160,12 @@ finish:
        return 0;
 }
 
-inline char *modname_normalize(const char *modname, char buf[NAME_MAX],
+inline char *modname_normalize(const char *modname, char buf[PATH_MAX],
                                                                size_t *len)
 {
        size_t s;
 
-       for (s = 0; s < NAME_MAX - 1; s++) {
+       for (s = 0; s < PATH_MAX - 1; s++) {
                const char c = modname[s];
                if (c == '-')
                        buf[s] = '_';
@@ -183,7 +183,7 @@ inline char *modname_normalize(const char *modname, char buf[NAME_MAX],
        return buf;
 }
 
-char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len)
+char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len)
 {
        char *modname;
 
index 3cd352c88fd597a010bda1f84c3d179832743f3f..e8ed5ad48169153a272da0713127aedc1f6026ff 100644 (file)
@@ -20,9 +20,9 @@ int read_str_ulong(int fd, unsigned long *value, int base) __must_check __attrib
 char *strchr_replace(char *s, int c, char r);
 bool path_is_absolute(const char *p) __must_check __attribute__((nonnull(1)));
 char *path_make_absolute_cwd(const char *p) __must_check __attribute__((nonnull(1)));
-int alias_normalize(const char *alias, char buf[NAME_MAX], size_t *len) __must_check __attribute__((nonnull(1,2)));
-char *modname_normalize(const char *modname, char buf[NAME_MAX], size_t *len) __attribute__((nonnull(1, 2)));
-char *path_to_modname(const char *path, char buf[NAME_MAX], size_t *len) __attribute__((nonnull(2)));
+int alias_normalize(const char *alias, char buf[PATH_MAX], size_t *len) __must_check __attribute__((nonnull(1,2)));
+char *modname_normalize(const char *modname, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(1, 2)));
+char *path_to_modname(const char *path, char buf[PATH_MAX], size_t *len) __attribute__((nonnull(2)));
 unsigned long long ts_usec(const struct timespec *ts);
 
 #endif
index 70c397cc20aaed1e35b24a545918e04ae7d871cd..47265228e0da28968c14533328c92d04a4dd065f 100644 (file)
@@ -1249,7 +1249,7 @@ static int depmod_modules_search_file(struct depmod *depmod, size_t baselen, siz
        struct kmod_module *kmod;
        struct mod *mod;
        const char *relpath;
-       char modname[NAME_MAX];
+       char modname[PATH_MAX];
        const struct kmod_ext *eitr;
        size_t modnamelen;
        uint8_t matches = 0;
@@ -2101,7 +2101,7 @@ static int output_builtin_bin(struct depmod *depmod, FILE *out)
 {
        FILE *in;
        struct index_node *idx;
-       char infile[PATH_MAX], line[PATH_MAX], modname[NAME_MAX];
+       char infile[PATH_MAX], line[PATH_MAX], modname[PATH_MAX];
 
        if (out == stdout)
                return 0;