projects
/
project
/
uci.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix `uci import` with not yet existing packages
[project/uci.git]
/
lua
/
uci.c
diff --git
a/lua/uci.c
b/lua/uci.c
index
98e0a2f
..
6382900
100644
(file)
--- a/
lua/uci.c
+++ b/
lua/uci.c
@@
-364,6
+364,8
@@
uci_lua_get_any(lua_State *L, bool all)
err = UCI_ERR_INVAL;
goto error;
}
err = UCI_ERR_INVAL;
goto error;
}
+ if (s)
+ free(s);
if (!err)
return 1;
if (!err)
return 1;
@@
-484,6
+486,8
@@
uci_lua_rename(lua_State *L)
goto error;
error:
goto error;
error:
+ if (s)
+ free(s);
return uci_push_status(L, ctx, false);
}
return uci_push_status(L, ctx, false);
}
@@
-533,6
+537,8
@@
uci_lua_reorder(lua_State *L)
goto error;
error:
goto error;
error:
+ if (s)
+ free(s);
return uci_push_status(L, ctx, false);
}
return uci_push_status(L, ctx, false);
}
@@
-545,6
+551,7
@@
uci_lua_set(lua_State *L)
bool istable = false;
int err = UCI_ERR_MEM;
char *s = NULL;
bool istable = false;
int err = UCI_ERR_MEM;
char *s = NULL;
+ const char *v;
int i, nargs, offset = 0;
ctx = find_context(L, &offset);
int i, nargs, offset = 0;
ctx = find_context(L, &offset);
@@
-591,8
+598,14
@@
uci_lua_set(lua_State *L)
if (istable) {
if (lua_objlen(L, nargs) == 1) {
i = 1;
if (istable) {
if (lua_objlen(L, nargs) == 1) {
i = 1;
- if (ptr.o)
+ if (ptr.o) {
+ v = ptr.value;
+ ptr.value = NULL;
err = uci_delete(ctx, &ptr);
err = uci_delete(ctx, &ptr);
+ if (err)
+ goto error;
+ ptr.value = v;
+ }
} else {
i = 2;
err = uci_set(ctx, &ptr);
} else {
i = 2;
err = uci_set(ctx, &ptr);
@@
-616,6
+629,8
@@
uci_lua_set(lua_State *L)
error:
error:
+ if (s)
+ free(s);
return uci_push_status(L, ctx, false);
}
return uci_push_status(L, ctx, false);
}
@@
-665,6
+680,8
@@
uci_lua_package_cmd(lua_State *L, enum pkg_cmd cmd)
}
err:
}
err:
+ if (s)
+ free(s);
return uci_push_status(L, ctx, false);
}
return uci_push_status(L, ctx, false);
}