uci: Fix uci_delete() when ptr->value is empty string
[project/uci.git] / list.c
diff --git a/list.c b/list.c
index bf0f376..f3a9ed6 100644 (file)
--- a/list.c
+++ b/list.c
@@ -217,7 +217,7 @@ uci_free_section(struct uci_section *s)
        uci_free_element(&s->e);
 }
 
-__plugin struct uci_package *
+__private struct uci_package *
 uci_alloc_package(struct uci_context *ctx, const char *name)
 {
        struct uci_package *p;
@@ -559,7 +559,7 @@ int uci_delete(struct uci_context *ctx, struct uci_ptr *ptr)
 
        UCI_ASSERT(ctx, ptr->s);
 
-       if (ptr->value && ptr->o && ptr->o->type == UCI_TYPE_LIST) {
+       if (ptr->value && *ptr->value && ptr->o && ptr->o->type == UCI_TYPE_LIST) {
                if (!sscanf(ptr->value, "%d", &index))
                        return 1;