Removed the hardcoded limit of the username length.
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@1478 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
bf4c26c110
commit
27388283ad
@ -21,7 +21,7 @@
|
||||
#include "rdesktop.h"
|
||||
#include "ssl.h"
|
||||
|
||||
extern char g_username[64];
|
||||
extern char *g_username;
|
||||
extern char g_hostname[16];
|
||||
|
||||
static uint8 g_licence_key[16];
|
||||
|
18
rdesktop.c
18
rdesktop.c
@ -48,7 +48,7 @@
|
||||
#include "ssl.h"
|
||||
|
||||
char g_title[64] = "";
|
||||
char g_username[64];
|
||||
char *g_username;
|
||||
char g_hostname[16];
|
||||
char g_keymapname[PATH_MAX] = "";
|
||||
unsigned int g_keylayout = 0x409; /* Defaults to US keyboard layout */
|
||||
@ -99,7 +99,7 @@ RD_BOOL g_redirect = False;
|
||||
char g_redirect_server[64];
|
||||
char g_redirect_domain[16];
|
||||
char g_redirect_password[64];
|
||||
char g_redirect_username[64];
|
||||
char *g_redirect_username;
|
||||
char g_redirect_cookie[128];
|
||||
uint32 g_redirect_flags = 0;
|
||||
|
||||
@ -473,7 +473,8 @@ main(int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
STRNCPY(g_username, optarg, sizeof(g_username));
|
||||
g_username = (char *) xmalloc(strlen(optarg) + 1);
|
||||
STRNCPY(g_username, optarg, strlen(optarg) + 1);
|
||||
username_option = 1;
|
||||
break;
|
||||
|
||||
@ -846,8 +847,10 @@ main(int argc, char *argv[])
|
||||
error("could not determine username, use -u\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
STRNCPY(g_username, pw->pw_name, sizeof(g_username));
|
||||
/* +1 for trailing \0 */
|
||||
int pwlen = strlen(pw->pw_name) + 1;
|
||||
g_username = (char *) xmalloc(pwlen);
|
||||
STRNCPY(g_username, pw->pw_name, pwlen);
|
||||
}
|
||||
|
||||
#ifdef HAVE_ICONV
|
||||
@ -962,6 +965,8 @@ main(int argc, char *argv[])
|
||||
rdesktop_reset_state();
|
||||
|
||||
STRNCPY(domain, g_redirect_domain, sizeof(domain));
|
||||
xfree(g_username);
|
||||
g_username = (char *) xmalloc(strlen(g_redirect_username) + 1);
|
||||
STRNCPY(g_username, g_redirect_username, sizeof(g_username));
|
||||
STRNCPY(password, g_redirect_password, sizeof(password));
|
||||
STRNCPY(server, g_redirect_server, sizeof(server));
|
||||
@ -1006,7 +1011,10 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
#endif
|
||||
if (g_redirect_username)
|
||||
xfree(g_redirect_username);
|
||||
|
||||
xfree(g_username);
|
||||
}
|
||||
|
||||
#ifdef EGD_SOCKET
|
||||
|
7
rdp.c
7
rdp.c
@ -36,7 +36,7 @@
|
||||
#endif
|
||||
|
||||
extern uint16 g_mcs_userid;
|
||||
extern char g_username[64];
|
||||
extern char *g_username;
|
||||
extern char g_codepage[16];
|
||||
extern RD_BOOL g_bitmap_compression;
|
||||
extern RD_BOOL g_orders;
|
||||
@ -63,7 +63,7 @@ extern RD_BOOL g_redirect;
|
||||
extern char g_redirect_server[64];
|
||||
extern char g_redirect_domain[16];
|
||||
extern char g_redirect_password[64];
|
||||
extern char g_redirect_username[64];
|
||||
extern char *g_redirect_username;
|
||||
extern char g_redirect_cookie[128];
|
||||
extern uint32 g_redirect_flags;
|
||||
/* END Session Directory support */
|
||||
@ -1379,7 +1379,8 @@ process_redirect_pdu(STREAM s /*, uint32 * ext_disc_reason */ )
|
||||
in_uint32_le(s, len);
|
||||
|
||||
/* read username string */
|
||||
rdp_in_unistr(s, g_redirect_username, sizeof(g_redirect_username), len);
|
||||
g_redirect_username = (char *) xmalloc(len + 1);
|
||||
rdp_in_unistr(s, g_redirect_username, strlen(g_redirect_username), len);
|
||||
|
||||
/* read length of domain string */
|
||||
in_uint32_le(s, len);
|
||||
|
Loading…
Reference in New Issue
Block a user