projects
/
project
/
ubus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubusd: add missing NULL pointer checks for obj->type
[project/ubus.git]
/
ubusd_proto.c
diff --git
a/ubusd_proto.c
b/ubusd_proto.c
index 0af11f2742d10eb7af069d521842fc668815607d..0624574925603a1cd7b265e33d42aef88774b9b3 100644
(file)
--- a/
ubusd_proto.c
+++ b/
ubusd_proto.c
@@
-146,7
+146,7
@@
static int ubusd_handle_add_object(struct ubus_client *cl, struct ubus_msg_buf *
blob_buf_init(&b, 0);
blob_put_int32(&b, UBUS_ATTR_OBJID, obj->id.id);
blob_buf_init(&b, 0);
blob_put_int32(&b, UBUS_ATTR_OBJID, obj->id.id);
- if (attr[UBUS_ATTR_SIGNATURE])
+ if (attr[UBUS_ATTR_SIGNATURE]
&& obj->type
)
blob_put_int32(&b, UBUS_ATTR_OBJTYPE, obj->type->id.id);
ubus_proto_send_msg_from_blob(cl, ub, UBUS_MSG_DATA);
blob_put_int32(&b, UBUS_ATTR_OBJTYPE, obj->type->id.id);
ubus_proto_send_msg_from_blob(cl, ub, UBUS_MSG_DATA);
@@
-159,6
+159,9
@@
static void ubusd_send_obj(struct ubus_client *cl, struct ubus_msg_buf *ub, stru
int cnt = 0;
void *s;
int cnt = 0;
void *s;
+ if (!obj->type)
+ return;
+
blob_buf_init(&b, 0);
blob_put_string(&b, UBUS_ATTR_OBJPATH, obj->path.key);
blob_buf_init(&b, 0);
blob_put_string(&b, UBUS_ATTR_OBJPATH, obj->path.key);