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:
4d618b2
)
uci: properly deal with uci_load() failures
author
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 11 Sep 2013 11:16:27 +0000
(13:16 +0200)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Wed, 11 Sep 2013 11:16:27 +0000
(13:16 +0200)
uci.c
patch
|
blob
|
history
diff --git
a/uci.c
b/uci.c
index 62ca7fe0c9a375c46519d519f542c33b28f5aa24..a133ff27606cab6969db9d00f38b36ec9000f457 100644
(file)
--- a/
uci.c
+++ b/
uci.c
@@
-538,10
+538,9
@@
rpc_uci_get(struct ubus_context *ctx, struct ubus_object *obj,
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_G_CONFIG]);
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_G_CONFIG]);
- uci_load(cursor, ptr.package, &p);
- if (
!p
)
-
goto out
;
+ if (
uci_load(cursor, ptr.package, &p)
)
+
return rpc_uci_status()
;
if (tb[RPC_G_SECTION])
{
if (tb[RPC_G_SECTION])
{
@@
-577,8
+576,7
@@
rpc_uci_get(struct ubus_context *ctx, struct ubus_object *obj,
ubus_send_reply(ctx, req, buf.head);
out:
ubus_send_reply(ctx, req, buf.head);
out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-606,10
+604,8
@@
rpc_uci_add(struct ubus_context *ctx, struct ubus_object *obj,
ptr.package = blobmsg_data(tb[RPC_A_CONFIG]);
ptr.package = blobmsg_data(tb[RPC_A_CONFIG]);
- uci_load(cursor, ptr.package, &p);
-
- if (!p)
- goto out;
+ if (uci_load(cursor, ptr.package, &p))
+ return rpc_uci_status();
/* add named section */
if (tb[RPC_A_NAME])
/* add named section */
if (tb[RPC_A_NAME])
@@
-664,8
+660,7
@@
rpc_uci_add(struct ubus_context *ctx, struct ubus_object *obj,
ubus_send_reply(ctx, req, buf.head);
out:
ubus_send_reply(ctx, req, buf.head);
out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-737,10
+732,9
@@
rpc_uci_set(struct ubus_context *ctx, struct ubus_object *obj,
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_S_CONFIG]);
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_S_CONFIG]);
- uci_load(cursor, ptr.package, &p);
- if (
!p
)
-
goto out
;
+ if (
uci_load(cursor, ptr.package, &p)
)
+
return rpc_uci_status()
;
if (tb[RPC_S_SECTION])
{
if (tb[RPC_S_SECTION])
{
@@
-765,10
+759,7
@@
rpc_uci_set(struct ubus_context *ctx, struct ubus_object *obj,
}
uci_save(cursor, p);
}
uci_save(cursor, p);
-
-out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-844,10
+835,9
@@
rpc_uci_delete(struct ubus_context *ctx, struct ubus_object *obj,
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_D_CONFIG]);
return UBUS_STATUS_PERMISSION_DENIED;
ptr.package = blobmsg_data(tb[RPC_D_CONFIG]);
- uci_load(cursor, ptr.package, &p);
- if (
!p
)
-
goto out
;
+ if (
uci_load(cursor, ptr.package, &p)
)
+
return rpc_uci_status()
;
if (tb[RPC_D_SECTION])
{
if (tb[RPC_D_SECTION])
{
@@
-877,10
+867,7
@@
rpc_uci_delete(struct ubus_context *ctx, struct ubus_object *obj,
}
uci_save(cursor, p);
}
uci_save(cursor, p);
-
-out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-910,10
+897,8
@@
rpc_uci_rename(struct ubus_context *ctx, struct ubus_object *obj,
if (tb[RPC_R_OPTION])
ptr.option = blobmsg_data(tb[RPC_R_OPTION]);
if (tb[RPC_R_OPTION])
ptr.option = blobmsg_data(tb[RPC_R_OPTION]);
- uci_load(cursor, ptr.package, &p);
-
- if (!p)
- goto out;
+ if (uci_load(cursor, ptr.package, &p))
+ return rpc_uci_status();
if (uci_lookup_ptr(cursor, &ptr, NULL, true))
goto out;
if (uci_lookup_ptr(cursor, &ptr, NULL, true))
goto out;
@@
-930,8
+915,7
@@
rpc_uci_rename(struct ubus_context *ctx, struct ubus_object *obj,
uci_save(cursor, p);
out:
uci_save(cursor, p);
out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-958,10
+942,8
@@
rpc_uci_order(struct ubus_context *ctx, struct ubus_object *obj,
ptr.package = blobmsg_data(tb[RPC_O_CONFIG]);
ptr.package = blobmsg_data(tb[RPC_O_CONFIG]);
- uci_load(cursor, ptr.package, &p);
-
- if (!p)
- goto out;
+ if (uci_load(cursor, ptr.package, &p))
+ return rpc_uci_status();
blobmsg_for_each_attr(cur, tb[RPC_O_SECTIONS], rem)
{
blobmsg_for_each_attr(cur, tb[RPC_O_SECTIONS], rem)
{
@@
-978,10
+960,7
@@
rpc_uci_order(struct ubus_context *ctx, struct ubus_object *obj,
}
uci_save(cursor, p);
}
uci_save(cursor, p);
-
-out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-1041,10
+1020,8
@@
rpc_uci_changes(struct ubus_context *ctx, struct ubus_object *obj,
if (!rpc_uci_read_access(tb[RPC_C_SESSION], tb[RPC_C_CONFIG]))
return UBUS_STATUS_PERMISSION_DENIED;
if (!rpc_uci_read_access(tb[RPC_C_SESSION], tb[RPC_C_CONFIG]))
return UBUS_STATUS_PERMISSION_DENIED;
- uci_load(cursor, blobmsg_data(tb[RPC_C_CONFIG]), &p);
-
- if (!p)
- goto out;
+ if (uci_load(cursor, blobmsg_data(tb[RPC_C_CONFIG]), &p))
+ return rpc_uci_status();
blob_buf_init(&buf, 0);
c = blobmsg_open_array(&buf, "changes");
blob_buf_init(&buf, 0);
c = blobmsg_open_array(&buf, "changes");
@@
-1056,9
+1033,7
@@
rpc_uci_changes(struct ubus_context *ctx, struct ubus_object *obj,
ubus_send_reply(ctx, req, buf.head);
ubus_send_reply(ctx, req, buf.head);
-out:
- if (p)
- uci_unload(cursor, p);
+ uci_unload(cursor, p);
return rpc_uci_status();
}
return rpc_uci_status();
}
@@
-1106,9
+1081,7
@@
rpc_uci_revert_commit(struct ubus_context *ctx, struct blob_attr *msg, bool comm
if (commit)
{
if (commit)
{
- uci_load(cursor, ptr.package, &p);
-
- if (p)
+ if (!uci_load(cursor, ptr.package, &p))
{
uci_commit(cursor, &p, false);
uci_unload(cursor, p);
{
uci_commit(cursor, &p, false);
uci_unload(cursor, p);
@@
-1207,9
+1180,8
@@
rpc_uci_apply_config(struct ubus_context *ctx, char *config)
struct uci_ptr ptr = { 0 };
ptr.package = config;
struct uci_ptr ptr = { 0 };
ptr.package = config;
- uci_load(cursor, ptr.package, &p);
- if (
p
) {
+ if (
!uci_load(cursor, ptr.package, &p)
) {
uci_commit(cursor, &p, false);
uci_unload(cursor, p);
}
uci_commit(cursor, &p, false);
uci_unload(cursor, p);
}