sys: Check return values of chdir and write
Fixes the following warnings: rpcd/sys.c: In function 'rpc_cgi_password_set': rpcd/sys.c:116:8: error: ignoring return value of 'chdir', declared with attribute warn_unused_result [-Werror=unused-result] chdir("/"); ^ rpcd/sys.c:125:8: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result] write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]), ^ rpcd/sys.c:127:8: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result] write(fds[1], "\n", 1); ^ rpcd/sys.c:131:8: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result] write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]), ^ rpcd/sys.c:133:8: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result] write(fds[1], "\n", 1); ^ cc1: all warnings being treated as errors Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
This commit is contained in:
parent
f4089654a3
commit
26c98ec94d
1 changed files with 18 additions and 5 deletions
23
sys.c
23
sys.c
|
@ -76,6 +76,8 @@ rpc_cgi_password_set(struct ubus_context *ctx, struct ubus_object *obj,
|
|||
int fd, fds[2];
|
||||
struct stat s;
|
||||
struct blob_attr *tb[__RPC_P_MAX];
|
||||
ssize_t n;
|
||||
int ret;
|
||||
|
||||
blobmsg_parse(rpc_password_policy, __RPC_P_MAX, tb,
|
||||
blob_data(msg), blob_len(msg));
|
||||
|
@ -113,7 +115,9 @@ rpc_cgi_password_set(struct ubus_context *ctx, struct ubus_object *obj,
|
|||
close(fd);
|
||||
}
|
||||
|
||||
chdir("/");
|
||||
ret = chdir("/");
|
||||
if (ret < 0)
|
||||
return rpc_errno_status();
|
||||
|
||||
if (execl("/usr/bin/passwd", "/usr/bin/passwd",
|
||||
blobmsg_data(tb[RPC_P_USER]), NULL))
|
||||
|
@ -122,15 +126,24 @@ rpc_cgi_password_set(struct ubus_context *ctx, struct ubus_object *obj,
|
|||
default:
|
||||
close(fds[0]);
|
||||
|
||||
write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]),
|
||||
n = write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]),
|
||||
blobmsg_data_len(tb[RPC_P_PASSWORD]) - 1);
|
||||
write(fds[1], "\n", 1);
|
||||
if (n < 0)
|
||||
return rpc_errno_status();
|
||||
|
||||
n = write(fds[1], "\n", 1);
|
||||
if (n < 0)
|
||||
return rpc_errno_status();
|
||||
|
||||
usleep(100 * 1000);
|
||||
|
||||
write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]),
|
||||
n = write(fds[1], blobmsg_data(tb[RPC_P_PASSWORD]),
|
||||
blobmsg_data_len(tb[RPC_P_PASSWORD]) - 1);
|
||||
write(fds[1], "\n", 1);
|
||||
if (n < 0)
|
||||
return rpc_errno_status();
|
||||
n = write(fds[1], "\n", 1);
|
||||
if (n < 0)
|
||||
return rpc_errno_status();
|
||||
|
||||
close(fds[1]);
|
||||
|
||||
|
|
Loading…
Reference in a new issue