blobmsg_add_string_buffer(&buf);
ubus_send_reply(ctx, req, buf.head);
+ blob_buf_free(&buf);
rv = UBUS_STATUS_OK;
out:
if (!tb[RPC_F_RW_PATH] || !tb[RPC_F_RW_DATA])
return UBUS_STATUS_INVALID_ARGUMENT;
- if ((fd = open(blobmsg_data(tb[RPC_F_RW_PATH]), O_CREAT | O_TRUNC | O_WRONLY)) < 0)
+ if ((fd = open(blobmsg_data(tb[RPC_F_RW_PATH]), O_CREAT | O_TRUNC | O_WRONLY, 0666)) < 0)
return rpc_errno_status();
if (write(fd, blobmsg_data(tb[RPC_F_RW_DATA]), blobmsg_data_len(tb[RPC_F_RW_DATA])) < 0)
blobmsg_close_table(&buf, d);
}
+ closedir(fd);
+
blobmsg_close_array(&buf, c);
ubus_send_reply(ctx, req, buf.head);
+ blob_buf_free(&buf);
return 0;
}
blobmsg_add_u32(&buf, "gid", s.st_gid);
ubus_send_reply(ctx, req, buf.head);
+ blob_buf_free(&buf);
return 0;
}
rpc_ustream_to_blobmsg(&c->epipe.stream, "stderr");
ubus_send_reply(c->context, &c->request, buf.head);
+ blob_buf_free(&buf);
}
ubus_complete_deferred_request(c->context, &c->request, rv);