]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
tree-wide: Sprinkle _clang_suppress_alloc_
authorLucas De Marchi <lucas.de.marchi@gmail.com>
Mon, 11 Nov 2024 15:04:44 +0000 (09:04 -0600)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Tue, 12 Nov 2024 00:11:11 +0000 (18:11 -0600)
Add the clang::suppress attribute to places where allocation is done and
that rely on the cleanup attribute. Clang analyzer doesn't handle those
(yet), so keep it from giving us false positive.

Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/233
libkmod/libkmod-config.c
libkmod/libkmod-module.c
shared/util.c
tools/depmod.c

index 165ba4dcf222d9da1e1a072a3cd2319feae44bd3..dfb1c083a3e108a3140acbedac68d6d2100b4edd 100644 (file)
@@ -241,7 +241,7 @@ static int kmod_config_add_blacklist(struct kmod_config *config, const char *mod
 
        DBG(config->ctx, "modname=%s\n", modname);
 
-       p = strdup(modname);
+       _clang_suppress_alloc_ p = strdup(modname);
        if (!p)
                return -ENOMEM;
 
index 47c6305a529ede20d1f73c94d273cfc4b8e3baa2..cdf90135718467efef54471d00c26c5dab994c0a 100644 (file)
@@ -828,7 +828,7 @@ static int module_do_install_commands(struct kmod_module *mod, const char *optio
                size_t suffixlen = cmdlen - prefixlen - varlen;
                size_t slen = cmdlen - varlen + options_len;
                char *suffix = p + varlen;
-               char *s = malloc(slen + 1);
+               _clang_suppress_alloc_ char *s = malloc(slen + 1);
                if (!s)
                        return -ENOMEM;
 
index 6d1cf420f615eb49d838f8bebf5a6069252309be..7a1f3ee8b3e7d7374a06b6a7b8f7a7b071e06180 100644 (file)
@@ -419,7 +419,7 @@ int mkdir_p(const char *path, int len, mode_t mode)
        _cleanup_free_ char *start;
        char *end;
 
-       start = memdup(path, len + 1);
+       _clang_suppress_alloc_ start = memdup(path, len + 1);
        if (!start)
                return -ENOMEM;
 
index a1ba388d61e9afa3e6c1ca2dad189ab286b31f13..3bb5a519a4ecf76e7820ff9cbee3c86cb76b1ac2 100644 (file)
@@ -1913,7 +1913,7 @@ static void depmod_report_cycles(struct depmod *depmod, uint16_t n_mods, uint16_
                n_r++;
        }
 
-       stack = malloc(n_r * sizeof(void *));
+       _clang_suppress_alloc_ stack = malloc(n_r * sizeof(void *));
        if (stack == NULL) {
                ERR("No memory to report cycles\n");
                goto out_list;
@@ -2920,7 +2920,8 @@ static int do_depmod(int argc, char *argv[])
                        break;
                case 'C': {
                        size_t bytes = sizeof(char *) * (n_config_paths + 2);
-                       void *tmp = realloc(config_paths, bytes);
+                       _clang_suppress_alloc_ void *tmp = realloc(config_paths, bytes);
+
                        if (!tmp) {
                                fputs("Error: out-of-memory\n", stderr);
                                goto cmdline_failed;