Signed-off-by: Yousong Zhou <yszhou4t...@gmail.com>
---
 delta.c |    2 ++
 uci.h   |    2 ++
 2 files changed, 4 insertions(+)

diff --git a/delta.c b/delta.c
index 082633b..b56df5b 100644
--- a/delta.c
+++ b/delta.c
@@ -87,6 +87,8 @@ int uci_add_delta_path(struct uci_context *ctx, const char 
*dir)
 
        UCI_HANDLE_ERR(ctx);
        UCI_ASSERT(ctx, dir != NULL);
+       if (!strcmp(dir, ctx->savedir))
+               return -1;
        e = uci_alloc_generic(ctx, UCI_TYPE_PATH, dir, sizeof(struct 
uci_element));
        uci_list_add(&ctx->delta_path, &e->list);
 
diff --git a/uci.h b/uci.h
index 36c8890..eb7470c 100644
--- a/uci.h
+++ b/uci.h
@@ -262,6 +262,8 @@ extern int uci_set_confdir(struct uci_context *ctx, const 
char *dir);
  *
  * This function allows you to add directories, which contain 'overlays'
  * for the active config, that will never be committed.
+ * Caller of this API should ensure that no duplicate entries (including the
+ * default search path, e.g. `UCI_SAVEDIR') should be added.
  */
 extern int uci_add_delta_path(struct uci_context *ctx, const char *dir);
 
-- 
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to