From: Felix Fietkau Date: Tue, 28 Jan 2025 18:55:25 +0000 (+0100) Subject: libuci: fix false positive warning on older gcc versions X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f3fc0b76040685829191debc03edf72f486ae8ae;p=project%2Fuci.git libuci: fix false positive warning on older gcc versions Fixes the following warning: libuci.c: In function 'uci_set_conf2dir': libuci.c:97:59: error: argument 'dir' might be clobbered by 'longjmp' or 'vfork' [-Werror=clobbered] 97 | int uci_set_conf2dir(struct uci_context *ctx, const char *dir) | ~~~~~~~~~~~~^~~ cc1: all warnings being treated as errors Reported-by: Matthias Franck Signed-off-by: Felix Fietkau --- diff --git a/libuci.c b/libuci.c index cffb916..d854549 100644 --- a/libuci.c +++ b/libuci.c @@ -98,11 +98,11 @@ int uci_set_conf2dir(struct uci_context *ctx, const char *dir) { char *cdir; - UCI_HANDLE_ERR(ctx); - if (dir && !dir[0]) - dir = NULL; + if (!dir || !dir[0]) + cdir = NULL; + else if ((cdir = strdup(dir)) == NULL) + return UCI_ERR_MEM; - cdir = dir ? uci_strdup(ctx, dir) : NULL; if (ctx->conf2dir != uci_conf2dir) free(ctx->conf2dir); ctx->conf2dir = cdir;