fix uci.save() with cursors
[project/uci.git] / util.c
diff --git a/util.c b/util.c
index d5bcd8a..7f37e88 100644 (file)
--- a/util.c
+++ b/util.c
@@ -120,6 +120,7 @@ static void uci_alloc_parse_context(struct uci_context *ctx)
 int uci_parse_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str)
 {
        char *last = NULL;
+       char *tmp;
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, str);
@@ -153,6 +154,10 @@ int uci_parse_ptr(struct uci_context *ctx, struct uci_ptr *ptr, char *str)
                ptr->target = UCI_TYPE_OPTION;
        }
 
+       tmp = strsep(&str, ".");
+       if (tmp)
+               goto error;
+
 lastval:
        if (ptr->package && !uci_validate_str(ptr->package, false))
                goto error;