Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Uninitialized Variable  at pvmgs_func.c:1249

Categories: LANG.MEM.UVAR CWE:457
Warning ID: 2964.3047
Procedure: gs_host_all
Trace: View
Modified: Wed Sep 2 12:55:09 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/pvmgs/pvmgs_core.c
   Enter gs_handle
 245 gs_handle( hash_list, ngroups, gstid ) 
 246 GROUP_LIST_PTR hash_list;
 247 int *ngroups, *gstid;
 248 {
 249         int len, msgtag, tid, gid, cc, ftid, inst, i, size, ntids, listsize;
 250         int cnt, hosttid, nhosts, nmem_onhost, pcoord;
 251         int *nmem_onhostv = (int *) NULL, *pcoordv = (int *) NULL;  
 252         int mxupklen = 0;
 253         GROUP_STRUCT_PTR group;
 254         char *groupname = (char *) NULL;
 255         int *tidlist = (int *) NULL;
 256         int maxntids = 0, info;
 257         int gstate;
 258  
 259         while ( 1 )  
 260         {
 261                 if ( (cc = pvm_recv( -1, -1 )) < 0 )  /* receive a request */ 
 262                 {
 263                         pvm_perror( "gs_handle(recv)" );
 264                         return( cc );
 265                 }
 266                 /* get: length of message, message tag, and sending tid */ 
 267                 if ( (cc = pvm_bufinfo( pvm_getrbuf(), &len, &msgtag, &tid )) 
 268                                 < 0 )  
 269                 {
 270                         pvm_perror("gs_handle(bufinfo)");
 271                         return( cc );
 272                 }
 273  
 274                 /* Most group functions require unpacking a group name, so */ 
 275                 /* Make sure variable groupname is always long enough */ 
true276                 REALLOCSTRING( len, mxupklen , groupname, "gs_handle(entry)" );   /* Ignored Return Value (ID: 2979.3065) */
 277  
 278                 switch( msgtag ) 
 279                 {
 280                         case (DIE):             /* leave a suicide note */ 
 281                                 gs_pstate( "pvmgs", hash_list, ngroups );
 282                                 return( PvmOk );
 283  
 284                         case (JOIN):    /* join a group with the lowest avail gid */ 
 285                                 pvm_upkstr( groupname );
 286                                 gid = gs_join( groupname, tid, hash_list, ngroups );
 287                                 /* tell me if the tid dies */ 
 288                                 if ( pvm_notify( PvmTaskExit, DEADTID, 1, &tid ) < 0 )  
 289                                         pvm_perror( "pvmgs-join" );
 290                                 SENDINTRESULT( gid, tid, msgtag, "gs_handle(join)" );
 291                                 break;
 292  
 293                         case (LEAVE):   /* leave a group */ 
 294                                 pvm_upkstr( groupname );
 295                                 cc = gs_leave( groupname, tid, hash_list, ngroups );
 296                                 SENDINTRESULT( cc, tid, msgtag, "gs_handle(leave)" );
 297                                 break;
 298  
 299                         case (DEADTID): /* task in one or more groups has died */ 
 300                                 pvm_upkint( &tid, 1, 1 );
 301                                 if ( tid < 0 )  
 302                                 {
 303                                         fprintf( stderr, "pvmgs: weird dead tid x%x %d\n",
 304                                                         tid, tid );
 305                                         break;
 306                                 }
 307                                 cc = gs_deadtid( tid, hash_list, ngroups );
 308                                 break;
 309  
 310                         case (BARRIER): /* Handle barrier for a group */ 
 311                         case (BARRIERV): 
 312                                 pvm_upkstr( groupname );
 313                                 pvm_upkint( &cnt, 1, 1 );
 314                                 cc = gs_barrier( groupname, msgtag,
 315                                                 cnt, tid, hash_list, ngroups );
 316                                 /* send back a response only if there is an error */ 
 317                                 if ( cc < 0 )  
 318                                         SENDINTRESULT( cc, tid, msgtag,
 319                                                         "gs_handle(barrier)" );
 320                                 break;
 321  
 322                         case (BCAST):   /* broadcast and tidlists */ 
 323                         case (TIDLIST): 
 324                                 pvm_upkstr( groupname );
 325                                 cc = gs_tidlist( groupname, ((msgtag == BCAST) ? 0 : 1),
 326                                                 hash_list, ngroups, &gstate );  
 327                                 if ( cc )  /* there was error, send back error code */ 
 328                                         SENDINTRESULT( cc, tid, msgtag, "gs_handle(bcast)" ) 
 329                                 else  /* send the already-packed tid-list */ 
 330                                 {
 331                                         PK_STATE( tid, gstate, groupname, hash_list,
 332                                                         ngroups, "gs_handle(bcast)" );
 333                                         SENDRESULT( tid, msgtag, "gs_handle(bcast)" );
 334                                 }
 335                                 break;
 336  
 337                         case (GSIZE):   /* return the current group size */ 
 338                                 pvm_upkstr( groupname );
 339                                 size = gs_gsize( groupname, hash_list, ngroups,
 340                                                 &gstate );
 341                                 PK_IRESULT( size, "gs_handle(gsize)" );
 342                                 PK_STATE( tid, gstate, groupname, hash_list, ngroups,
 343                                                 "gs_handle(gsize)" );
 344                                 SENDRESULT( tid, msgtag, "gs_handle(gsize)" );
 345                                 break;
 346  
 347                         case (GETINST): /* return inst of tid in group groupname */ 
 348                                 pvm_upkstr( groupname );
 349                                 pvm_upkint( &ftid, 1, 1 );
 350                                 inst = gs_getinst( groupname, ftid, hash_list, ngroups,
 351                                                 &gstate );
 352                                 PK_IRESULT( inst, "gs_handle(getinst)" );
 353                                 PK_STATE( tid, gstate, groupname, hash_list, ngroups,
 354                                                 "gs_handle(getinst)" );
 355                                 SENDRESULT( tid, msgtag, "gs_handle(getinst)" );
 356                                 break;
 357  
 358                         case (GETTID):  /* return tid from (group,instance) pair */ 
 359                                 pvm_upkstr( groupname );
 360                                 pvm_upkint( &inst, 1, 1 );
 361                                 ftid = gs_gettid( groupname, inst, hash_list, ngroups,
 362                                                 &gstate );
 363                                 PK_IRESULT( ftid, "gs_handle(gettid)" );
 364                                 PK_STATE( tid, gstate, groupname, hash_list, ngroups,
 365                                                 "gs_handle(gettid)" );   /* Uninitialized Variable (ID: 2958.3041) */
 366                                 SENDRESULT( tid, msgtag, "gs_handle(gettid)" );   /* Uninitialized Variable (ID: 2959.3042) */
 367                                 break;
 368  
 369                         case (STATICGROUP):     /* Form a static group */ 
 370                                 pvm_upkstr( groupname );
 371                                 pvm_upkint( &size, 1, 1 );
 372                                 info = gs_static( groupname, size, tid, hash_list,
 373                                                 ngroups );
 374                                 if ( info < 0 )
 375                                         SENDINTRESULT( info, tid, msgtag,
 376                                                         "gs_handle(static)" );
 377                                 /* gs_static will mcast list to group when formed */ 
 378                                 break;
 379  
 380                         case DUMP: 
 381                                 gs_pstate( "DUMP", hash_list, ngroups );
 382                                 break;
 383  
 384                         case GSLS: 
 385                                 gs_ls( hash_list, ngroups );
 386                                 pvm_send( tid, msgtag );
 387                                 break;
 388  
 389                         case HOSTCHAR:  /* get host characteristics */ 
 390                                 pvm_upkstr( groupname );
 391                                 pvm_upkint( &hosttid, 1, 1 );
 392                                 gs_host_char( groupname, hash_list, ngroups, hosttid,    /* Uninitialized Variable (ID: 2966.3049) */
 393                                                 &pcoord, &nmem_onhost, &nhosts, &gstate );
 394                                 PK_IRESULT( nhosts, "gs_handle(hostchar)" );
 395                                 pvm_pkint( &nmem_onhost, 1, 1 );
 396                                 pvm_pkint( &pcoord, 1, 1 );  
 397                                 PK_STATE( tid, gstate, groupname, hash_list, ngroups,
 398                                                 "gs_handle(hostchar)" );
 399                                 SENDRESULT( tid, msgtag, "gs_handle(hostchar)" );
 400                                 break;  
 401  
 402                         case HOSTCHARV: /* get host characteristics */ 
 403                                 pvm_upkstr( groupname );
 404                                 gs_host_all( groupname, hash_list, ngroups, &pcoordv,  
*groupname is uninitialized405                                                 &nmem_onhostv, &nhosts, &gstate );
     /u1/paul/SATE/2010/c/pvm/pvm3/pvmgs/pvmgs_func.c
     Enter gs_handle / gs_host_all
*$param_1 is uninitialized1230   gs_host_all(gname, hash_list, ngroups, pcoordv, nmem_onhostv, nhosts, gstate) 
 1231   char *gname;
 1232   GROUP_LIST_PTR hash_list;
 1233   int *ngroups;
 1234   int **pcoordv;  
 1235   int **nmem_onhostv;  
 1236   int *nhosts;  
 1237   int *gstate;
 1238   {
 1239           int hostindx;
 1240    
 1241           GROUP_STRUCT_PTR group;
 1242    
 1243           *nmem_onhostv = (int *) NULL;  
 1244           *nhosts = 0;  
 1245           *gstate = DYNAMIC;  
 1246           *pcoordv = (int *) NULL;
 1247    
 1248           /* check for valid group name */ 
*gname is uninitialized1249           if (gname == (char*) 0 || *gname == '\0')     /* Uninitialized Variable */
     Exit gs_handle / gs_host_all
 406                                 PK_IRESULT( nhosts, "gs_handle(hostchar)" );
 407                                 pvm_pkint( nmem_onhostv, nhosts, 1 );
 408                                 pvm_pkint( pcoordv, nhosts, 1 );  
 409                                 PK_STATE( tid, gstate, groupname, hash_list, ngroups,
 410                                                 "gs_handle(hostchar)" );
 411                                 SENDRESULT( tid, msgtag, "gs_handle(hostchar)" );
 412                                 break;
 413  
 414                         default: 
 415                                 break;
Preconditions
&$unknown_3883164 != 0
pvmautoerr != 2
pvmautoerr != 3
pvmtoplvl != 0
Postconditions
cc' >= 0
gname' = &$heap_259066
groupname' = &$heap_259066
gstate' = 2
gstate' = &gstate
gstid' = $param_3
hash_list' = $param_1
hash_list' = $param_1
$heap_259066' is allocated by malloc
$heap_259066' is allocated
bytes_before(&$heap_259066)' = 0
len' >= -1
maxntids' = 0
msgtag' = 15
mxupklen' = len'
ngroups' = $param_2
ngroups' = $param_2
nhosts' = &nhosts
nhosts' = 0
nmem_onhostv' = 0
nmem_onhostv' = &nmem_onhostv
pcoordv' = &pcoordv
pcoordv' = 0
pvmrbuf' = &$unknown_3883164
pvmtrccodef' = &$unknown_3883161
tidlist' = 0




Change Warning 2964.3047 : Uninitialized Variable

Priority:
State:
Finding:
Owner:
Note: