projects
/
project
/
ubus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libubus: fix a small memleak in ubus_register_event_handler()
[project/ubus.git]
/
libubus.c
diff --git
a/libubus.c
b/libubus.c
index
83a2c43
..
e42f14f
100644
(file)
--- a/
libubus.c
+++ b/
libubus.c
@@
-243,8
+243,11
@@
int ubus_register_event_handler(struct ubus_context *ctx,
if (pattern)
blobmsg_add_string(&b2, "pattern", pattern);
if (pattern)
blobmsg_add_string(&b2, "pattern", pattern);
- ret
urn
ubus_invoke(ctx, UBUS_SYSTEM_OBJECT_EVENT, "register", b2.head,
+ ret
=
ubus_invoke(ctx, UBUS_SYSTEM_OBJECT_EVENT, "register", b2.head,
NULL, NULL, 0);
NULL, NULL, 0);
+ blob_buf_free(&b2);
+
+ return ret;
}
int ubus_send_event(struct ubus_context *ctx, const char *id,
}
int ubus_send_event(struct ubus_context *ctx, const char *id,
@@
-280,9
+283,10
@@
static int _ubus_connect(struct ubus_context *ctx, const char *path)
ctx->connection_lost = ubus_default_connection_lost;
ctx->pending_timer.cb = ubus_process_pending_msg;
ctx->connection_lost = ubus_default_connection_lost;
ctx->pending_timer.cb = ubus_process_pending_msg;
- ctx->msgbuf.data = calloc(UBUS_M
AX_MSGLEN
, sizeof(char));
+ ctx->msgbuf.data = calloc(UBUS_M
SG_CHUNK_SIZE
, sizeof(char));
if (!ctx->msgbuf.data)
return -1;
if (!ctx->msgbuf.data)
return -1;
+ ctx->msgbuf_data_len = UBUS_MSG_CHUNK_SIZE;
INIT_LIST_HEAD(&ctx->requests);
INIT_LIST_HEAD(&ctx->pending);
INIT_LIST_HEAD(&ctx->requests);
INIT_LIST_HEAD(&ctx->pending);