ret = obj->methods[method].handler(ctx, obj, &req,
blob_data(attrbuf[UBUS_ATTR_METHOD]),
attrbuf[UBUS_ATTR_DATA]);
- close(req.req_fd);
+ if (req.req_fd >= 0)
+ close(req.req_fd);
if (req.deferred || no_reply)
return;
if (!attrbuf[UBUS_ATTR_OBJID])
return;
+ avl_delete(&req->ctx->objects, &obj->avl);
+
obj->id = 0;
if (attrbuf[UBUS_ATTR_OBJTYPE] && obj->type)
obj->type->id = 0;
-
- avl_delete(&req->ctx->objects, &obj->avl);
}
int ubus_remove_object(struct ubus_context *ctx, struct ubus_object *obj)