[LEDE-DEV] [PATCH rpcd v3] sys: fix passwd path
Arjen de Korte
arjen+lede at de-korte.org
Sun Nov 26 09:50:11 PST 2017
Citeren Roman Yeryomin <roman at advem.lv>:
> Changes from v2:
> - const both to pointer and char itself, so nothing can be modified
The first const may be useful to prevent changes to the pointer, but
the second is nonsense. You won't be able to modify the string it
points to anyway.
const char *passwd = "/bin/passwd";
> Signed-off-by: Roman Yeryomin <roman at advem.lv>
> ---
> sys.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/sys.c b/sys.c
> index 40f49ca..122191b 100644
> --- a/sys.c
> +++ b/sys.c
> @@ -78,6 +78,7 @@ rpc_cgi_password_set(struct ubus_context *ctx,
> struct ubus_object *obj,
> struct blob_attr *tb[__RPC_P_MAX];
> ssize_t n;
> int ret;
> + const char *const passwd = "/bin/passwd";
>
> blobmsg_parse(rpc_password_policy, __RPC_P_MAX, tb,
> blob_data(msg), blob_len(msg));
> @@ -85,7 +86,7 @@ rpc_cgi_password_set(struct ubus_context *ctx,
> struct ubus_object *obj,
> if (!tb[RPC_P_USER] || !tb[RPC_P_PASSWORD])
> return UBUS_STATUS_INVALID_ARGUMENT;
>
> - if (stat("/usr/bin/passwd", &s))
> + if (stat(passwd, &s))
> return UBUS_STATUS_NOT_FOUND;
>
> if (!(s.st_mode & S_IXUSR))
> @@ -119,7 +120,7 @@ rpc_cgi_password_set(struct ubus_context *ctx,
> struct ubus_object *obj,
> if (ret < 0)
> return rpc_errno_status();
>
> - if (execl("/usr/bin/passwd", "/usr/bin/passwd",
> + if (execl(passwd, passwd,
> blobmsg_data(tb[RPC_P_USER]), NULL))
> return rpc_errno_status();
More information about the Lede-dev
mailing list