Text  |   XML   |   Visible Warnings:

pvm3.4.6 : pvm3.4.6 analysis 2 : Null Pointer Dereference  at lpvm.c:884

Categories: LANG.MEM.NPD CWE:476
Warning ID: 22135.29114
Procedure: ttpcb_delete
Trace: view
Modified: Thu Nov 26 11:34:29 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/pvm3/src/lpvm.c
   Enter pvm_tc_conreq
 1132 pvm_tc_conreq(mid) 
 1133         int mid;
 1134 {
 1135         int src;                                        /* sender of request */ 
 1136         int sbf = 0;                            /* reply message mid */ 
 1137         int ttpro;                                      /* protocol revision */ 
 1138         struct ttpcb *pcbp;                     /* pcb for connection */ 
 1139         int ackd;                                       /* allow connection (0) */ 
 1140         char *addr = "";                        /* socket address */ 
 1141         int i;
 1142         int ictx;
 1143 #ifdef SOCKLENISUINT 
 1144 #if defined(IMA_AIX4SP2) || defined(IMA_AIX5SP2)
 1145         unsigned int oslen;
 1146 #else 
 1147         size_t oslen;
 1148 #endif 
 1149 #else 
 1150         int oslen;
 1151 #endif 
 1152 #ifndef NOUNIXDOM 
 1153         struct sockaddr_un uns;
 1154         char spath[PVMTMPNAMLEN];
 1155 #endif 
 1156         char buf[256];
 1157  
 1158         pvm_bufinfo(mid, (int *)0, (int *)0, &src);
 1159  
 1160         pvm_upkint(&ttpro, 1, 1);
 1161         pvm_upkstr(buf);
 1162  
 1163         if (pcbp = ttpcb_find(src)) {   /* Uninitialized Variable (ID: 406.29119) */
 1164                 if (pvmdebmask & PDMROUTE) {
 1165                         pvmlogprintf( 
 1166                                         "pvm_tc_conreq() crossed CONREQ from t%x\n", src);
 1167                 }
 1168                 if (pcbp->tt_state == TTCONWAIT) {
 1169  
 1170                         /* must handle simultaneous connect from both ends:
 1171                          *  lower tid of the two just ignores the CONREQ.
 1172                          *  higher tid pretends it didn't send a CONREQ,
 1173                          *      sends a CONACK back.
   ...
 1214                                         pvm_freebuf(pvm_setsbuf(sbf));
 1215                                 }
 1216                         }
 1217  
 1218                 } else {
 1219                         pvmlogprintf( 
 1220                                         "pvm_tc_conreq() CONREQ from t%x but state=%d ?\n",
 1221                                         src, pcbp->tt_state);
 1222                 }
 1223  
 1224         } else {
 1225                 if (pvmdebmask & PDMROUTE)
 1226                         pvmlogprintf("pvm_tc_conreq() CONREQ from t%x\n", src);
 1227                 ackd = 1;
true1228                 pcbp = ttpcb_creat(src);
 1229                 if (pvmrouteopt != PvmDontRoute) {
 1230                         if (buf[0] == '/') {   /* Uninitialized Variable (ID: 404.29118) */
 1231  
 1232 #ifdef NOUNIXDOM 
 1233  
 1234                                 pvmlogprintf( "%s CONREQ from t%x, ",
 1235                                                 "pvm_tc_conreq()", src );
 1236                                 pvmlogprintf( "Unix domain socket unsupported\n" ); 
 1237  
 1238 #else /*NOUNIXDOM*/ 
 1239  
   ...
 1318                                                                 /* will be accepted later */ 
 1319  
 1320                                                                 check_routeadd(pcbp);
 1321                                                         }
 1322                                                 }
 1323                                         }
 1324                                 }
 1325                         }
 1326                 }
 1327  
 1328                 if (pvmdebmask & PDMROUTE)
 1329                         pvmlogprintf( "%s: sending CONACK to t%x\n",
 1330                                 "pvm_tc_conreq()", src );
 1331  
 1332                 sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
 1333                 ttpro = TDPROTOCOL;
 1334                 pvm_pkint(&ttpro, 1, 1);
 1335                 pvm_pkint(&ackd, 1, 1);
 1336                 pvm_pkstr(addr);
 1337                 i = pvmrescode;
 1338                 pvmrescode = 1;
 1339                 ictx = pvm_setcontext(SYSCTX_TC);
 1340                 pvm_send(src, TC_CONACK);
 1341                 pvm_setcontext(ictx);
 1342                 pvmrescode = i;
 1343                 pvm_freebuf(pvm_setsbuf(sbf));
 1344  
 1345                 if (ackd)
pcbp <= 40951346                         ttpcb_delete(pcbp);
     Enter pvm_tc_conreq / ttpcb_delete
 879   ttpcb_delete(pcbp) 
 880           struct ttpcb *pcbp;
 881   {
 882           struct pmsg *up;
 883    
pcbp <= 4095884           if (pcbp->tt_link) {     /* Null Pointer Dereference */
     Exit pvm_tc_conreq / ttpcb_delete
Preconditions
pvmautoerr != 0
pvmautoerr != 2
pvmautoerr != 3
pvmrouteopt = 1
pvmtoplvl != 0
Postconditions
*stderr' is allocated by fopen
bytes_before(stderr)' = 0
ackd' = 1
addr' = &#string10[0]
i' = pvmrescode
pcbp' = 0
pcbp' = 0
pvmtrccodef' = &$unknown_10811872
ttpro' = 1318




Change Warning 22135.29114 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: