The branch, master has been updated via f5401ff s3-util: Fix asking for username and password in smbget. from cb243d8 tests/getnc_exop: Ensure that attribute list sorting is correct
https://git.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit f5401ff3146aabc5fb2dac25e4856c6c3756c8f7 Author: Andreas Schneider <a...@samba.org> Date: Thu Aug 25 14:24:08 2016 +0200 s3-util: Fix asking for username and password in smbget. If the user specified the username in the URI with with: smb://DOMAIN;user:secret@server/share the tool should not prompt for the username nor the password. BUG: https://bugzilla.samba.org/show_bug.cgi?id=12175 Signed-off-by: Andreas Schneider <a...@samba.org> Reviewed-by: Jeremy Allison <j...@samba.org> Autobuild-User(master): Jeremy Allison <j...@samba.org> Autobuild-Date(master): Fri Aug 26 04:22:27 CEST 2016 on sn-devel-144 ----------------------------------------------------------------------- Summary of changes: source3/utils/smbget.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/utils/smbget.c b/source3/utils/smbget.c index 99261e3..d2d5e00 100644 --- a/source3/utils/smbget.c +++ b/source3/utils/smbget.c @@ -105,7 +105,6 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen, static char *savedwg; static char *savedun; static char *savedpw; - char tmp[128]; if (hasasked) { strncpy(wg, savedwg, wglen - 1); @@ -115,23 +114,22 @@ static void get_auth_data(const char *srv, const char *shr, char *wg, int wglen, } hasasked = true; - if (!opt.nonprompt && !opt.username_specified) { - printf("Username for %s at %s [guest] ", shr, srv); - if (fgets(tmp, sizeof(tmp), stdin) == NULL) { - return; - } - if ((strlen(tmp) > 0) && (tmp[strlen(tmp) - 1] == '\n')) { - tmp[strlen(tmp) - 1] = '\0'; - } - strncpy(un, tmp, unlen - 1); - } else if (opt.username != NULL) { + /* + * If no user has been specified un is initialized with the current + * username of the user who started smbget. + */ + if (opt.username_specified) { strncpy(un, opt.username, unlen - 1); } - if (!opt.nonprompt && !opt.password_specified) { + if (!opt.nonprompt && !opt.password_specified && pw[0] == '\0') { char *prompt; - if (asprintf(&prompt, "Password for %s at %s: ", shr, srv) == - -1) { + int rc; + + rc = asprintf(&prompt, + "Password for [%s] connecting to //%s/%s: ", + un, shr, srv); + if (rc == -1) { return; } (void)samba_getpass(prompt, pw, pwlen, false, false); -- Samba Shared Repository