X-Git-Url: http://git.archive.openwrt.org/?p=project%2Frpcd.git;a=blobdiff_plain;f=uci.c;h=ac97cbdd4231a74805768f6b98594673bea7a5d4;hp=0409a07d72927d41f9a066cb6b8441a2943acb07;hb=97384dd72acbba1e586824b477c2bea483505a40;hpb=c2a7fcf947f250dd2edf881af518fbd7b8a9d677 diff --git a/uci.c b/uci.c index 0409a07..ac97cbd 100644 --- a/uci.c +++ b/uci.c @@ -1021,19 +1021,22 @@ rpc_uci_revert_commit(struct blob_attr *msg, bool commit) return UBUS_STATUS_PERMISSION_DENIED; ptr.package = blobmsg_data(tb[RPC_C_CONFIG]); - uci_load(cursor, ptr.package, &p); - - if (!p || uci_lookup_ptr(cursor, &ptr, NULL, true) || !ptr.p) - goto out; if (commit) - uci_commit(cursor, &p, false); - else - uci_revert(cursor, &ptr); + { + uci_load(cursor, ptr.package, &p); -out: - if (p) - uci_unload(cursor, p); + if (p) + { + uci_commit(cursor, &p, false); + uci_unload(cursor, p); + } + } + else + { + if (!uci_lookup_ptr(cursor, &ptr, NULL, true) && ptr.p) + uci_revert(cursor, &ptr); + } return rpc_uci_status(); }