Revert "Always prompt for password if not provided via commandline."

This reverts commit 1aaafc80c0.

This change has caused a lot of issues, so we need to pause this for
now and figure out a way to make the transition smoother.
This commit is contained in:
Pierre Ossman 2019-09-03 16:07:58 +02:00
parent 1475092762
commit 9f14da3eb2

View File

@ -160,8 +160,6 @@ extern RDPDR_DEVICE g_rdpdr_device[];
extern uint32 g_num_devices; extern uint32 g_num_devices;
extern char *g_rdpdr_clientname; extern char *g_rdpdr_clientname;
RD_BOOL password_provided = False;
/* Display usage information */ /* Display usage information */
static void static void
usage(char *program) usage(char *program)
@ -778,7 +776,7 @@ main(int argc, char *argv[])
char domain[256]; char domain[256];
char shell[256]; char shell[256];
char directory[256]; char directory[256];
RD_BOOL deactivated; RD_BOOL prompt_password, deactivated;
struct passwd *pw; struct passwd *pw;
uint32 flags, ext_disc_reason = 0; uint32 flags, ext_disc_reason = 0;
char *p; char *p;
@ -815,6 +813,7 @@ main(int argc, char *argv[])
flags = RDP_INFO_MOUSE | RDP_INFO_DISABLECTRLALTDEL flags = RDP_INFO_MOUSE | RDP_INFO_DISABLECTRLALTDEL
| RDP_INFO_UNICODE | RDP_INFO_MAXIMIZESHELL | RDP_INFO_ENABLEWINDOWSKEY; | RDP_INFO_UNICODE | RDP_INFO_MAXIMIZESHELL | RDP_INFO_ENABLEWINDOWSKEY;
prompt_password = False;
g_seamless_spawn_cmd[0] = g_tls_version[0] = domain[0] = g_password[0] = shell[0] = directory[0] = 0; g_seamless_spawn_cmd[0] = g_tls_version[0] = domain[0] = g_password[0] = shell[0] = directory[0] = 0;
g_embed_wnd = 0; g_embed_wnd = 0;
@ -858,17 +857,19 @@ main(int argc, char *argv[])
break; break;
case 'p': case 'p':
if (!((optarg[0] == '-') && (optarg[1] == 0))) if ((optarg[0] == '-') && (optarg[1] == 0))
{ {
password_provided = True; prompt_password = True;
STRNCPY(g_password, optarg, sizeof(g_password)); break;
flags |= RDP_INFO_AUTOLOGON;
/* try to overwrite argument so it won't appear in `ps` */
p = optarg;
while (*p)
*(p++) = 'X';
} }
STRNCPY(g_password, optarg, sizeof(g_password));
flags |= RDP_INFO_AUTOLOGON;
/* try to overwrite argument so it won't appear in ps */
p = optarg;
while (*p)
*(p++) = 'X';
break; break;
#ifdef WITH_SCARD #ifdef WITH_SCARD
case 'i': case 'i':
@ -1285,8 +1286,7 @@ main(int argc, char *argv[])
if (locale) if (locale)
xfree(locale); xfree(locale);
/* If no password provided at this point, prompt for password / pin */ if (prompt_password)
if (!g_password[0] && password_provided == False)
{ {
if (read_password(g_password, sizeof(g_password))) if (read_password(g_password, sizeof(g_password)))
{ {