aboutsummaryrefslogtreecommitdiffstats
path: root/root_commands.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2008-08-25 21:48:48 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2008-08-25 21:48:48 +0100
commitf536a99f4541af0252dff3991ec608e3d3469117 (patch)
treeddc1ef4ab29c2928bf824c2db0552b5fa07bb89d /root_commands.c
parentf3579fd061746fe88c53330a2b9002da4193b37a (diff)
Fixed NULL pointer dereference on trying to read non-existent settings.
Diffstat (limited to 'root_commands.c')
-rw-r--r--root_commands.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/root_commands.c b/root_commands.c
index 7e84ddf6..88127acb 100644
--- a/root_commands.c
+++ b/root_commands.c
@@ -237,14 +237,14 @@ void cmd_account_del_no( void *data )
g_free( data );
}
-static void cmd_showset( irc_t *irc, set_t *set )
+static void cmd_showset( irc_t *irc, set_t **head, char *key )
{
- char *s;
+ char *val;
- if( set && ( s = set_getstr( &set, set->key ) ) ) /* HACK! */
- irc_usermsg( irc, "%s = `%s'", set->key, s );
+ if( ( val = set_getstr( head, key ) ) )
+ irc_usermsg( irc, "%s = `%s'", key, val );
else
- irc_usermsg( irc, "%s is empty", set->key );
+ irc_usermsg( irc, "%s is empty", key );
}
static void cmd_account( irc_t *irc, char **cmd )
@@ -483,19 +483,19 @@ static void cmd_account( irc_t *irc, char **cmd )
}
else
{
- cmd_showset( irc, set_find( &a->set, set_name ) );
+ cmd_showset( irc, &a->set, set_name );
}
}
else if( set_name )
{
- cmd_showset( irc, set_find( &a->set, set_name ) );
+ cmd_showset( irc, &a->set, set_name );
}
else
{
set_t *s = a->set;
while( s )
{
- cmd_showset( irc, s );
+ cmd_showset( irc, &s, s->key );
s = s->next;
}
}
@@ -863,12 +863,12 @@ static void cmd_set( irc_t *irc, char **cmd )
}
else
{
- cmd_showset( irc, set_find( &irc->set, set_name ) );
+ cmd_showset( irc, &irc->set, set_name );
}
}
else if( set_name )
{
- cmd_showset( irc, set_find( &irc->set, set_name ) );
+ cmd_showset( irc, &irc->set, set_name );
if( strchr( set_name, '/' ) )
irc_usermsg( irc, "Warning: / found in setting name, you're probably looking for the `account set' command." );
@@ -878,7 +878,7 @@ static void cmd_set( irc_t *irc, char **cmd )
set_t *s = irc->set;
while( s )
{
- cmd_showset( irc, s );
+ cmd_showset( irc, &s, s->key );
s = s->next;
}
}