projects
/
project
/
rpcd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7cac6af
)
debug
author
Jo-Philipp Wich
<jow@openwrt.org>
Sun, 12 Jan 2014 17:33:46 +0000
(17:33 +0000)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Sun, 12 Jan 2014 17:42:05 +0000
(17:42 +0000)
uci.c
patch
|
blob
|
history
diff --git
a/uci.c
b/uci.c
index 3bbb9c8878e74ac1bb86bcb1e2251d34f2c0f76a..08489e3a227e88ac9341c99ea9792e9045284c0a 100644
(file)
--- a/
uci.c
+++ b/
uci.c
@@
-1392,6
+1392,10
@@
rpc_uci_apply(struct ubus_context *ctx, struct ubus_object *obj,
return ret;
}
return ret;
}
+ /* copy SID early because rpc_uci_apply_config() will clobber buf */
+ if (rollback)
+ strncpy(apply_sid, sid, RPC_SID_LEN);
+
for (i = 0; i < gl.gl_pathc; i++) {
char *config = basename(gl.gl_pathv[i]);
struct stat s;
for (i = 0; i < gl.gl_pathc; i++) {
char *config = basename(gl.gl_pathv[i]);
struct stat s;
@@
-1410,7
+1414,6
@@
rpc_uci_apply(struct ubus_context *ctx, struct ubus_object *obj,
globfree(&gl);
if (rollback) {
globfree(&gl);
if (rollback) {
- strncpy(apply_sid, sid, RPC_SID_LEN);
apply_timer.cb = rpc_uci_apply_timeout;
uloop_timeout_set(&apply_timer, timeout * 1000);
apply_ctx = ctx;
apply_timer.cb = rpc_uci_apply_timeout;
uloop_timeout_set(&apply_timer, timeout * 1000);
apply_ctx = ctx;
@@
-1439,6
+1442,8
@@
rpc_uci_confirm(struct ubus_context *ctx, struct ubus_object *obj,
if (!apply_sid[0])
return UBUS_STATUS_NO_DATA;
if (!apply_sid[0])
return UBUS_STATUS_NO_DATA;
+ printf("CMP=%s/%s\n", apply_sid, sid);
+
if (strcmp(apply_sid, sid))
return UBUS_STATUS_PERMISSION_DENIED;
if (strcmp(apply_sid, sid))
return UBUS_STATUS_PERMISSION_DENIED;