On Tue, Nov 7, 2017 at 9:34 PM, Rosen Penev <ros...@gmail.com> wrote: > Replace malloc+memset with calloc. Cleaner and faster in extreme situations. > > Signed-off-by: Rosen Penev <ros...@gmail.com> > --- > libubus.c | 6 ++---- > lua/ubus.c | 18 ++++++------------ > 2 files changed, 8 insertions(+), 16 deletions(-) > > diff --git a/libubus.c b/libubus.c > index 9463522..260e40f 100644 > --- a/libubus.c > +++ b/libubus.c > @@ -133,7 +133,7 @@ struct ubus_lookup_request { > static void ubus_lookup_cb(struct ubus_request *ureq, int type, struct > blob_attr *msg) > { > struct ubus_lookup_request *req; > - struct ubus_object_data obj; > + struct ubus_object_data obj = {}; > struct blob_attr **attr; > > req = container_of(ureq, struct ubus_lookup_request, req); > @@ -143,7 +143,6 @@ static void ubus_lookup_cb(struct ubus_request *ureq, int > type, struct blob_attr > !attr[UBUS_ATTR_OBJTYPE]) > return; > > - memset(&obj, 0, sizeof(obj)); > obj.id = blob_get_u32(attr[UBUS_ATTR_OBJID]); > obj.path = blob_data(attr[UBUS_ATTR_OBJPATH]); > obj.type_id = blob_get_u32(attr[UBUS_ATTR_OBJTYPE]); > @@ -220,7 +219,7 @@ int ubus_register_event_handler(struct ubus_context *ctx, > const char *pattern) > { > struct ubus_object *obj = &ev->obj; > - struct blob_buf b2; > + struct blob_buf b2 = {}; > int ret; > > if (!obj->id) { > @@ -236,7 +235,6 @@ int ubus_register_event_handler(struct ubus_context *ctx, > } > > /* use a second buffer, ubus_invoke() overwrites the primary one */ > - memset(&b2, 0, sizeof(b2)); > blob_buf_init(&b2, 0); > blobmsg_add_u32(&b2, "object", obj->id); > if (pattern) > diff --git a/lua/ubus.c b/lua/ubus.c > index 74a15b0..e9fd10e 100644 > --- a/lua/ubus.c > +++ b/lua/ubus.c > @@ -410,11 +410,10 @@ static int ubus_lua_load_methods(lua_State *L, struct > ubus_method *m) > } > > /* setup the policy pointers */ > - p = malloc(sizeof(struct blobmsg_policy) * plen); > + p = calloc(plen, sizeof(struct blobmsg_policy)); > if (!p) > return 1; > > - memset(p, 0, sizeof(struct blobmsg_policy) * plen); > m->policy = p; > lua_pushnil(L); > while (lua_next(L, -2) != 0) { > @@ -481,26 +480,23 @@ static struct ubus_object* > ubus_lua_load_object(lua_State *L) > int midx = 0; > > /* setup object pointers */ > - obj = malloc(sizeof(struct ubus_lua_object)); > + obj = calloc(1, sizeof(struct ubus_lua_object)); > if (!obj) > return NULL; > > - memset(obj, 0, sizeof(struct ubus_lua_object)); > obj->o.name = lua_tostring(L, -2); > > /* setup method pointers */ > - m = malloc(sizeof(struct ubus_method) * mlen); > - memset(m, 0, sizeof(struct ubus_method) * mlen); > + m = calloc(1, sizeof(struct ubus_method) * mlen); > obj->o.methods = m;
While I have no strong opinion on the malloc + memset vs. calloc debate, here it looks like a check for if (!m) is missing. -Kristian _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev