diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2007-07-15 00:54:18 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2007-07-15 00:54:18 +0100 |
commit | a8a0b4cc1dafff3d822984a4329488f9aa032694 (patch) | |
tree | a84cf3eac33ddc86fba90e4a724601372b0b01f1 /storage_xml.c | |
parent | 1da00b12d498951219141000947927120b2fdbcc (diff) | |
parent | b9e4ab55dff62611e825de013b32fadab782362f (diff) |
Merge from Jelmer (making GCC4 happy by sanitizing some typecasting mess
around the RC4/B64 code).
Diffstat (limited to 'storage_xml.c')
-rw-r--r-- | storage_xml.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/storage_xml.c b/storage_xml.c index 00fca425..e45c4252 100644 --- a/storage_xml.c +++ b/storage_xml.c @@ -131,7 +131,8 @@ static void xml_start_element( GMarkupParseContext *ctx, const gchar *element_na else if( g_strcasecmp( element_name, "account" ) == 0 ) { char *protocol, *handle, *server, *password = NULL, *autoconnect; - char *pass_b64 = NULL, *pass_rc4 = NULL; + char *pass_b64 = NULL; + unsigned char *pass_rc4 = NULL; int pass_len; struct prpl *prpl = NULL; @@ -151,8 +152,7 @@ static void xml_start_element( GMarkupParseContext *ctx, const gchar *element_na g_set_error( error, G_MARKUP_ERROR, G_MARKUP_ERROR_INVALID_CONTENT, "Unknown protocol: %s", protocol ); else if( ( pass_len = base64_decode( pass_b64, (unsigned char**) &pass_rc4 ) ) && - rc4_decode( (unsigned char*) pass_rc4, pass_len, - (unsigned char**) &password, xd->given_pass ) ) + rc4_decode( pass_rc4, pass_len, &password, xd->given_pass ) ) { xd->current_account = account_add( irc, prpl, handle, password ); if( server ) @@ -409,7 +409,7 @@ static storage_status_t xml_save( irc_t *irc, int overwrite ) md5_append( &md5_state, pass_md5 + 16, 5 ); /* Add the salt. */ md5_finish( &md5_state, pass_md5 ); /* Save the hash in base64-encoded form. */ - pass_buf = base64_encode( (char*) pass_md5, 21 ); + pass_buf = base64_encode( pass_md5, 21 ); if( !xml_printf( fd, 0, "<user nick=\"%s\" password=\"%s\" version=\"%d\">\n", irc->nick, pass_buf, XML_FORMAT_VERSION ) ) goto write_error; @@ -423,10 +423,11 @@ static storage_status_t xml_save( irc_t *irc, int overwrite ) for( acc = irc->accounts; acc; acc = acc->next ) { - char *pass_rc4, *pass_b64; + unsigned char *pass_rc4; + char *pass_b64; int pass_len; - pass_len = rc4_encode( (unsigned char*) acc->pass, strlen( acc->pass ), (unsigned char**) &pass_rc4, irc->password ); + pass_len = rc4_encode( acc->pass, strlen( acc->pass ), (unsigned char**) &pass_rc4, irc->password ); pass_b64 = base64_encode( pass_rc4, pass_len ); g_free( pass_rc4 ); |