summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2015-08-20 12:47:10 -0700
committerJay Sorg <jay.sorg@gmail.com>2015-08-20 12:47:10 -0700
commite51175f6d8bd9cf845e82ddca41687cc7d54d425 (patch)
tree3789e3067b29f1297cc6175913cdfa7998c994db
parentbd248ac2bea3cf7f866dcf2cc1d02f80ddac9db4 (diff)
downloadxrdp-proprietary-e51175f6d8bd9cf845e82ddca41687cc7d54d425.tar.gz
xrdp-proprietary-e51175f6d8bd9cf845e82ddca41687cc7d54d425.zip
vnc: fix a issue with passwords longer that 8
-rw-r--r--vnc/vnc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/vnc/vnc.c b/vnc/vnc.c
index 66e70225..7423dfde 100644
--- a/vnc/vnc.c
+++ b/vnc/vnc.c
@@ -54,10 +54,12 @@ rfbEncryptBytes(char *bytes, char *passwd)
{
char key[24];
void *des;
+ int len;
/* key is simply password padded with nulls */
g_memset(key, 0, sizeof(key));
- g_mirror_memcpy(key, passwd, g_strlen(passwd));
+ len = MIN(g_strlen(passwd), 8);
+ g_mirror_memcpy(key, passwd, len);
des = ssl_des3_encrypt_info_create(key, 0);
ssl_des3_encrypt(des, 8, bytes, bytes);
ssl_des3_info_delete(des);