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 <matthias.franck@softathome.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
{
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;