From be90d40a346ed3df066c0e56d6cf23695ba24caa Mon Sep 17 00:00:00 2001 From: Henrik Andersson Date: Fri, 25 Nov 2011 10:03:03 +0000 Subject: [PATCH] Fixed issues with a too small buffer used for output of sec_hash_sha1_16() which introduced crashes on solaris, sha1 need 160bit output buffer. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1648 423420c4-83ab-492f-b58f-81f9feb106b5 --- rdesktop.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rdesktop.c b/rdesktop.c index 19c6535..cd1b51a 100644 --- a/rdesktop.c +++ b/rdesktop.c @@ -1565,8 +1565,8 @@ mkdir_p(const char *path, int mask) int load_licence(unsigned char **data) { - uint8 ho[16], hi[16]; - char *home, path[PATH_MAX], hash[33]; + uint8 ho[20], hi[16]; + char *home, path[PATH_MAX], hash[40]; struct stat st; int fd, length; @@ -1576,7 +1576,7 @@ load_licence(unsigned char **data) snprintf((char*)hi, 16, g_hostname); sec_hash_sha1_16(ho, hi, g_static_rdesktop_salt_16); - sec_hash_to_string(hash, 33, ho, 16); + sec_hash_to_string(hash, 40, ho, 22); snprintf(path, PATH_MAX, "%s"RDESKTOP_LICENSE_STORE"/%s.cal", home, hash); @@ -1608,8 +1608,8 @@ load_licence(unsigned char **data) void save_licence(unsigned char *data, int length) { - uint8 ho[16], hi[16]; - char *home, path[PATH_MAX], tmppath[PATH_MAX], hash[33]; + uint8 ho[20], hi[16]; + char *home, path[PATH_MAX], tmppath[PATH_MAX], hash[40]; int fd; home = getenv("HOME"); @@ -1626,7 +1626,7 @@ save_licence(unsigned char *data, int length) snprintf((char*)hi,16,g_hostname); sec_hash_sha1_16(ho, hi, g_static_rdesktop_salt_16); - sec_hash_to_string(hash, 33, ho, 16); + sec_hash_to_string(hash, 40, ho, 20); /* write licence to {sha1}.cal.new, then atomically rename to {sha1}.cal */