On Tue, 30 Jul 2013 10:00:26 +0200
Michał Górny <[email protected]> wrote:
> Relying on hardcoded /bin/systemd-ask-password path breaks systemd that
> install systemd-ask-password in /usr/bin. Since both paths are supposed
> to be in ${PATH} and popen() passes the command to shell, just pass
> 'systemd-ask-password' and let the shell find it.
>
> Fixes: https://bugzilla.samba.org/show_bug.cgi?id=10054
> Signed-off-by: Michał Górny <[email protected]>
> ---
> mount.cifs.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mount.cifs.c b/mount.cifs.c
> index e76beee..7206dcb 100644
> --- a/mount.cifs.c
> +++ b/mount.cifs.c
> @@ -1626,7 +1626,7 @@ drop_child_privs(void)
> }
>
> /*
> - * If systemd is running and /bin/systemd-ask-password --
> + * If systemd is running and systemd-ask-password --
> * is available, then use that else fallback on getpass(..)
> *
> * Returns: @input or NULL on error
> @@ -1649,7 +1649,7 @@ get_password(const char *prompt, char *input, int
> capacity)
> FILE *ask_pass_fp = NULL;
>
> cmd = ret = NULL;
> - if (asprintf(&cmd, "/bin/systemd-ask-password \"%s\"", prompt)
> >= 0) {
> + if (asprintf(&cmd, "systemd-ask-password \"%s\"", prompt) >= 0)
> {
> ask_pass_fp = popen (cmd, "re");
> free (cmd);
> }
Looks good, thanks. Will apply in a few days assuming no one objects.
I'll probably also throw in a comment mentioning that this relies on the
binary being in $PATH.
It might also be nice to consider adding an autoconf switch to set
this, but I think that relying on $PATH is probably reasonable in most
cases.
--
Jeff Layton <[email protected]>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html