Text  |   XML   |   Visible Warnings:

irssi-0.8.14 : irssi-0.8.14 analysis 2 : Null Pointer Dereference  at modes.c:435

Categories: LANG.MEM.NPD CWE:476
Warning ID: 7381.28479
Procedure: modes_join
Trace: view
Modified: Thu Nov 26 11:15:25 2009   show details
 
Priority: None
State: None
Finding: None
Owner: None
  edit properties

Legend [ X ]
Warning Location
Contributes
Parse Error
Other Warning
Two or More Loop Iterations
On Execution Path
Comment
Macro
Preprocessor
Include
Keyword
Preprocessed Away

Source  |  Language: C Hide Legend     
ProblemLineSource
   /kat0/fletcher/SATE/2010/irssi-0.8.14/src/perl/irc/Modes.c
   Enter XS_Irssi__Irc_modes_join
 19 XS(XS_Irssi__Irc_modes_join) 
 20 {
 21 #ifdef dVAR 
 22     dVAR; dXSARGS;
 23 #else 
 24     dXSARGS; 
 25 #endif 
 26     if (items != 4)
 27        Perl_croak(aTHX_ "Usage: %s(%s)", "Irssi::Irc::modes_join", "server, old, mode, channel");
 28     PERL_UNUSED_VAR(cv); /* -W */ 
 29     PERL_UNUSED_VAR(ax); /* -Wall */ 
 30     SP -= items;
 31     {
true32         Irssi__Irc__Server      server = irssi_ref_object(ST(0));
 33         char *  old = (char *)SvPV_nolen(ST(1));
 34         char *  mode = (char *)SvPV_nolen(ST(2));
 35         int     channel = (int)SvIV(ST(3));
 36 #line 13 "Modes.xs"
 37         char *ret;
 38 #line 39 "Modes.c"
 39 #line 15 "Modes.xs"
server <= 409540         ret = modes_join(server, old, mode, channel);
     /kat0/fletcher/SATE/2010/irssi-0.8.14/src/irc/core/modes.c
     Enter XS_Irssi__Irc_modes_join / modes_join
 415   char *modes_join(IRC_SERVER_REC *server, const char *old,
 416                    const char *mode, int channel) 
 417   {
 418           GString *newmode;
 419           char *dup, *modestr, *curmode, type;
 420    
 421           g_return_val_if_fail(mode != NULL, NULL);
 422    
 423           type = '+';
 424           newmode = g_string_new(old);
 425    
 426           dup = modestr = g_strdup(mode);
 427           curmode = cmd_get_param(&modestr);
 428           while (*curmode != '\0' && *curmode != ' ') {   /* Null Pointer Dereference (ID: 7250.28332) */
 429                   if (*curmode == '+' || *curmode == '-') {
 430                           type = *curmode;
 431                           curmode++;
 432                           continue;
 433                   }
 434    
server <= 4095435                   if (!channel || !HAS_MODE_ARG(server, type, *curmode))     /* Null Pointer Dereference */
     Exit XS_Irssi__Irc_modes_join / modes_join
Preconditions
&$unknown_1294871 != 0
&$unknown_1294874 != 0
$unknown_1294873 != 0
$unknown_1294873 != 32
$unknown_1294873 != 43
$unknown_1294873 != 45
strlen(&$unknown_1294873) != 0
Postconditions
_g_boolean_var_' = 1
_svi' = &$unknown_1294863
_svi' = &$unknown_1294855
_svi' = &$unknown_1294870
$unknown_1294838' = $unknown_1294838 - 4
channel' = &$unknown_1294874
curmode' = &$unknown_1294873
dup' = &$unknown_1294873
items' != 4
mode' = &$unknown_1294871
mode' = &$unknown_1294871
old' = &$unknown_1294872
old' = &$unknown_1294872
server' = 0
server' = 0
type' = 43




Change Warning 7381.28479 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: