Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Null Pointer Dereference  at pvmfrag.c:271

Categories: LANG.MEM.NPD CWE:476
Warning ID: 2524.2555
Procedure: fr_unref
Trace: View
Modified: Wed Sep 2 12:40:10 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
   /u1/paul/SATE/2010/c/pvm/pvm3/src/pmsg.c
   Enter pmsg_packbody
 2744 pmsg_packbody(mp, mp2) 
 2745         struct pmsg *mp;                /* message to pack into */ 
 2746         struct pmsg *mp2;               /* message to include body of */ 
 2747 {
 2748         struct frag *fp, *fp2;
 2749         int cc;
 2750  
 2751         if (mp->m_enc != mp2->m_enc)
 2752                 cc = PvmMismatch;
 2753         else {
 2754                 cc = 0;
 2755                 if ((fp = mp2->m_frag) && fp->fr_link != fp) {
 2756                         fp2 = mp->m_frag->fr_rlink;
 2757                         if (fp2 != mp->m_frag && fp2->fr_len == 0) {
true2758                                 LISTDELETE(fp2, fr_link, fr_rlink);
fp2->fr_link <= 40952759                                 fr_unref(fp2);
     /u1/paul/SATE/2010/c/pvm/pvm3/src/pvmfrag.c
     Enter pmsg_packbody / fr_unref
*$param_1 <= 4095244   fr_unref(fp) 
 245           struct frag *fp;                /* master frag */ 
 246   {
 247   /*
 248           pvmlogprintf("fr_unref() %lx ref %d\n", fp, fp->fr_u.ref);
 249   */ 
 250           if (fp->fr_u.ref-- == 1) {
 251                   struct frag *fp2, *fp3;
 252    
 253                   if (fp->fr_buf) {               /* slave frag */ 
 254                           if (fp->fr_u.dab)
 255   #ifdef IMA_CSPP 
 256                           if (fp->fr_num_unpacked) {
 257                                   unsigned int addr = (unsigned int)(fp->fr_dat);
 258                                   int nbytes = fp->fr_num_unpacked;
 259    
 260                                   nbytes += (addr & 0x3f);
 261                                   addr &= ~0x3f;
 262                                   dcache_flush_region(addr, nbytes);
 263                           } 
 264   #endif 
 265                                   da_unref(fp->fr_buf);
 266    
 267                   } else {                                /* master frag */ 
 268    
 269           /* unref all frags in chain */ 
fp->fr_link <= 4095270                           for (fp2 = fp->fr_link; fp2 != fp; fp2 = fp3) {
fp2 <= 4095271                                   fp3 = fp2->fr_link;     /* Null Pointer Dereference */
     Exit pmsg_packbody / fr_unref
Preconditions
((char*)$param_1)[24] != ((char*)&((char*)*$param_1)[24])[8]
((char*)$param_2)[24] != ((char*)*$param_2)[24]
((char*)$param_2)[72] = ((char*)$param_1)[72]
((char*)&((char*)((char*)*$param_1)[24])[8])[16] = 0
((char*)&((char*)((char*)*$param_1)[24])[8])[36] = 0
((char*)&((char*)((char*)*$param_1)[24])[8])[40] = 1
Postconditions
cc' = 0
fp' = ((char*)&((char*)*$param_1)[24])[8]
fp' = ((char*)$param_2)[24]
fp2' = 0
fp2' = ((char*)&((char*)*$param_1)[24])[8]
mp' = $param_1
mp2' = $param_2




Change Warning 2524.2555 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: