X-Git-Url: http://git.archive.openwrt.org/?p=project%2Frpcd.git;a=blobdiff_plain;f=sys.c;fp=sys.c;h=66f1b0ac75312a35a128b1d6172411b886c94b3c;hp=40f49ca0c7655254e242d03212bef2b07818bf5a;hb=74a784f037867025ad1c6b8c38bfdfa548742339;hpb=a0231be8fbc61bb97e725eb206fc9b1ce9f69c05 diff --git a/sys.c b/sys.c index 40f49ca..66f1b0a 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();