From f8cf80970bb8bd6e4c932b2cb14e57580e090488 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 31 Aug 2008 12:17:56 +0200 Subject: [PATCH] fix segfault in uci batch --- util.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) 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; -- 2.30.2