From 109b87d2a31167727cc0c5616ea05f9224ad7d13 Mon Sep 17 00:00:00 2001 From: Matt Johnston Date: Fri, 8 Jul 2005 11:30:54 +0000 Subject: [PATCH] Change the format of for loops, gcc4 produces incorrect binaries with the previous code. --HG-- extra : convert_revision : 560fb575d3fa53924774c7db897e304b35ba07e3 --- signkey.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/signkey.c b/signkey.c index b6b8bdc..8dee10b 100644 --- a/signkey.c +++ b/signkey.c @@ -279,7 +279,7 @@ static char * sign_key_md5_fingerprint(unsigned char* keyblob, char * ret; hash_state hs; unsigned char hash[MD5_HASH_SIZE]; - unsigned int h, i; + unsigned int i; unsigned int buflen; md5_init(&hs); @@ -296,10 +296,11 @@ static char * sign_key_md5_fingerprint(unsigned char* keyblob, memset(ret, 'Z', buflen); strcpy(ret, "md5 "); - for (i = 4, h = 0; i < buflen; i+=3, h++) { - ret[i] = hexdig(hash[h] >> 4); - ret[i+1] = hexdig(hash[h] & 0x0f); - ret[i+2] = ':'; + for (i = 0; i < MD5_HASH_SIZE; i++) { + unsigned int pos = 4 + i*3; + ret[pos] = hexdig(hash[i] >> 4); + ret[pos+1] = hexdig(hash[i] & 0x0f); + ret[pos+2] = ':'; } ret[buflen-1] = 0x0; @@ -313,7 +314,7 @@ static char * sign_key_sha1_fingerprint(unsigned char* keyblob, char * ret; hash_state hs; unsigned char hash[SHA1_HASH_SIZE]; - unsigned int h, i; + unsigned int i; unsigned int buflen; sha1_init(&hs); @@ -329,10 +330,11 @@ static char * sign_key_sha1_fingerprint(unsigned char* keyblob, strcpy(ret, "sha1 "); - for (i = 5, h = 0; i < buflen; i+=3, h++) { - ret[i] = hexdig(hash[h] >> 4); - ret[i+1] = hexdig(hash[h] & 0x0f); - ret[i+2] = ':'; + for (i = 0; i < SHA1_HASH_SIZE; i++) { + unsigned int pos = 5 + 3*i; + ret[pos] = hexdig(hash[i] >> 4); + ret[pos+1] = hexdig(hash[i] & 0x0f); + ret[pos+2] = ':'; } ret[buflen-1] = 0x0;