Text  |   XML   |   Visible Warnings:

pvm3.4.6 : pvm3.4.6 analysis 2 : Null Pointer Dereference  at host.c:420

Categories: LANG.MEM.NPD CWE:476
Warning ID: 154.28776
Procedure: nametohost
Trace: view
Modified: Thu Nov 26 11:27:53 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/ddpro.c
   Enter dm_delhost
 2529 dm_delhost(hp, mp) 
 2530         struct hostd *hp;
 2531         struct pmsg *mp;
 2532 {
 2533         int count;
 2534         char *buf;
 2535         struct pmsg *mp2;               /* DELHOSTACK message */ 
 2536         struct pmsg *mp3;               /* HTDEL message */ 
 2537         struct htab *ht_del;    /* hosts to delete */ 
 2538         struct htab *ht_save;   /* remaining hosts */ 
 2539         int hh;
 2540  
 2541 /* XXX danger, this doesn't check if already doing a host add/delete */ 
 2542  
 2543         /* sanity check count */ 
 2544  
 2545         if (upkint(mp, &count)) {
 2546                 pvmlogerror("dm_delhost() bad msg format\n");
 2547                 return 0;
 2548         }
 2549         if (count < 1 || count > (tidhmask >> (ffs(tidhmask) - 1))) {
 2550                 pvmlogerror("dm_delhost() bad count\n");
 2551                 return 0;
 2552         }
 2553  
 2554         /*
 2555         * read host names from message, generate delete and save sets 
 2556         * and a DELHOSTACK reply message with result code for each host.
 2557         * set SHUTDOWN flag for each host in delete set.
 2558         */ 
 2559  
 2560         ht_del = ht_new(1);
 2561         ht_save = ht_new(1);
 2562         ht_merge(ht_save, hosts);
 2563  
 2564         mp2 = mesg_new(0);
 2565         mp2->m_tag = DM_DELHOSTACK;   /* Null Pointer Dereference (ID: 157.28779) */
 2566         mp2->m_wid = mp->m_wid;
 2567         mp2->m_dst = mp->m_src;
 2568  
 2569         mp3 = mesg_new(0);
 2570         mp3->m_tag = DM_HTDEL;   /* Null Pointer Dereference (ID: 156.28778) */
 2571         pkint(mp3, hosts->ht_serial);
 2572  
 2573         pkint(mp2, count);
 2574         while (count-- > 0) {
true2575                 upkstralloc(mp, &buf);
buf <= 40952576                 if (hp = nametohost(hosts, buf)) {   /* Uninitialized Variable (ID: 155.28777) */
     /kat0/fletcher/SATE/2010/pvm3/src/host.c
     Enter dm_delhost / nametohost
 412   struct hostd * 
 413   nametohost(htp, name) 
 414           struct htab *htp;
 415           char *name;
 416   {
 417           int hh;
 418           struct hostd *hp;
 419    
name <= 4095420           if (!strcmp(name, "."))     /* Null Pointer Dereference */  /* Null Pointer Dereference (ID: 311.28988) */
     Exit dm_delhost / nametohost
 2577                         if (tidtohost(ht_del, hp->hd_hostpart)) {
 2578                                 pkint(mp2, PvmDupHost);
 2579  
 2580                         } else {
 2581                                 if (hp->hd_hostpart == myhostpart)
 2582                                         pkint(mp2, PvmBadParam);
 2583  
 2584                                 else {
 2585                                         ht_insert(ht_del, hp);
 2586                                         ht_delete(ht_save, hp);
 2587                                         pkint(mp3, hp->hd_hostpart);
 2588                                         fin_to_host(hp);
 2589                                         pkint(mp2, 0);
 2590                                 }
 2591                         }
 2592  
 2593                 } else 
 2594                         pkint(mp2, PvmNoHost);
 2595                 PVM_FREE(buf);
Preconditions
&$unknown_572569 >= 1
hosts->ht_last = 1
numfrags != 0
numfrags != 1
numpmsgs != 0
numpmsgs != 1
Postconditions
freefrags.fr_link->fr_link->fr_rlink' = freefrags.fr_link->fr_rlink
freepmsgs.m_link->m_link->m_rlink' = freepmsgs.m_link->m_rlink
freefrags.fr_link->fr_max' = 0
freefrags.fr_link->fr_len' = 0
freefrags.fr_link->fr_u.ref' = 1
freefrags.fr_link->fr_u.dab' = 1
freefrags.fr_link->fr_u.spr' = 0
freefrags.fr_link->fr_rlink' = freefrags.fr_link
freefrags.fr_link->fr_rip' = 0
freefrags.fr_link->fr_buf' = 0
freefrags.fr_link->fr_dat' = 0
freepmsgs.m_link->m_codef' = &$unknown_572565
freefrags.fr_link->fr_rlink->fr_link' = freefrags.fr_link->fr_link
freepmsgs.m_link->m_rlink->m_link' = freepmsgs.m_link->m_link
freefrags.fr_link->fr_link' = freefrags.fr_link
buf' = 0
count' = 0
errno' != 0
$heap_68495' = 0
bytes_after(&$heap_68495)' = 32
$heap_68495' is allocated by malloc
$heap_68495' is allocated
bytes_before(&$heap_68495)' = 0
$heap_68497' = 0
bytes_after(&$heap_68497)' = 32
$heap_68497' is allocated by malloc
$heap_68497' is allocated
bytes_before(&$heap_68497)' = 0
((char*)&$heap_68497)[28]' = &$heap_68498
$heap_68498' = 0
$heap_68498' is allocated
bytes_before(&$heap_68498)' = 0
ht_del' = &$heap_68495
ht_save' = &$heap_68497
htp' = hosts
mp2' = freepmsgs.m_link
mp3' = freepmsgs.m_link
name' = 0




Change Warning 154.28776 : Null Pointer Dereference

Priority:
State:
Finding:
Owner:
Note: