]> pilppa.com Git - uci.git/commitdiff
fix segfault in uci batch
authorFelix Fietkau <nbd@openwrt.org>
Sun, 31 Aug 2008 10:17:56 +0000 (12:17 +0200)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 31 Aug 2008 10:17:56 +0000 (12:17 +0200)
util.c

diff --git a/util.c b/util.c
index 7f37e882fc5348bc1254de3a87f6473d95d2f485..177bd1408d3fa24ce4a33b38917644b9e6bfa632 100644 (file)
--- 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;