From: Felix Fietkau Date: Sun, 31 Aug 2008 10:17:56 +0000 (+0200) Subject: fix segfault in uci batch X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuci.git;a=commitdiff_plain;h=f8cf80970bb8bd6e4c932b2cb14e57580e090488;ds=sidebyside fix segfault in uci batch --- diff --git a/util.c b/util.c index 7f37e88..177bd14 100644 --- a/util.c +++ b/util.c @@ -398,14 +398,14 @@ int uci_parse_argument(struct uci_context *ctx, FILE *stream, char **str, char * UCI_ASSERT(ctx, str != NULL); UCI_ASSERT(ctx, result != NULL); - if (ctx->pctx) { - if (ctx->pctx->file != stream) { - uci_cleanup(ctx); - } - } else { + if (ctx->pctx && (ctx->pctx->file != stream)) + uci_cleanup(ctx); + + if (!ctx->pctx) uci_alloc_parse_context(ctx); - ctx->pctx->file = stream; - } + + ctx->pctx->file = stream; + if (!*str) { uci_getln(ctx, 0); *str = ctx->pctx->buf;