aboutsummaryrefslogtreecommitdiffstats
path: root/storage_xml.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2007-07-15 00:54:18 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2007-07-15 00:54:18 +0100
commita8a0b4cc1dafff3d822984a4329488f9aa032694 (patch)
treea84cf3eac33ddc86fba90e4a724601372b0b01f1 /storage_xml.c
parent1da00b12d498951219141000947927120b2fdbcc (diff)
parentb9e4ab55dff62611e825de013b32fadab782362f (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.c13
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 );