Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Leak  at trcfile.c:1512

Categories: LANG.ALLOC.LEAK CWE:401 CWE:771 CWE:773
Warning ID: 2852.2915
Procedure: trc_unpack_data_value
Trace: View
Modified: Wed Sep 2 12:50:26 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/tracer/trcfile.c
   Enter trc_unpack_data_value
 1495 trc_unpack_data_value( DD ) 
 1496 TRC_DATADESC DD;
 1497 {
 1498         char upk_str[TRC_MAX_UNPACK_ARR_SIZE];
 1499  
 1500         int num;
 1501         int i;
 1502  
 1503         if ( DD->array == TEV_DATA_ARRAY )
 1504         {
 1505                 TRC_PVMCKERR( pvm_upkint( &num, 1, 1 ),
 1506                         "Array Unpack", return( TRC_FALSE ) );
 1507         }
 1508  
 1509         else 
 1510                 num = 1;
 1511  
allocated inside call1512         DD->data = trc_make_value( DD->dt, num );     /* Leak */  /* Uninitialized Variable (ID: 2854.2917) */
     /u1/paul/SATE/2010/c/pvm/pvm3/tracer/trcutil.c
     Enter trc_unpack_data_value / trc_make_value
 1574   trc_make_value( dt, num ) 
 1575   int dt;
 1576   int num;
 1577   {
 1578           TRC_VALUE tmp;
 1579    
 1580           int i;
 1581    
 1582           if ( num < 1 )
 1583                   return( (TRC_VALUE) NULL );
 1584    
 1585           tmp = (TRC_VALUE) NULL;
 1586    
 1587           switch ( dt ) 
 1588           {
 1589                   case TEV_DATA_NULLbreak;
 1590    
 1591                   case TEV_DATA_BYTE
 1592                   {
 1593                           tmp = (TRC_VALUE) malloc( (unsigned) num * sizeof( char ) );
 1594                           trc_memcheck( tmp, "Character Data Pointer);
 1595    
 1596                           break;
 1597                   }
 1598    
 1599                   case TEV_DATA_STRING: 
 1600                   {
referenced by returned value1601                           tmp = (TRC_VALUE) malloc( (unsigned) num 
 1602                                   * sizeof( char * ) );
referenced by tmp1603                           trc_memcheck( tmp, "String Data Pointer" );
 1604    
 1605                           break;
 1606                   }
 1607    
 1608                   case TEV_DATA_DCPLX
 1609                   case TEV_DATA_DOUBLE
 1610                   {
 1611                           tmp = (TRC_VALUE) malloc( (unsigned) num 
 1612                                   * sizeof( double ) );
 1613                           trc_memcheck( tmp, "Double Data Pointer);
 1614    
 1615                           break;
     ...
 1659                   {
 1660                           printf( "Value Data Type %d Not Implemented\n", dt );
 1661    
 1662                           break;
 1663                   }
 1664    
 1665                   default
 1666                           printf( "Warning: Unknown Value Data Type %d\n", dt );
 1667           }
 1668    
 1669           return( tmp );
referenced by returned value1670   } 
     Exit trc_unpack_data_value / trc_make_value
 1513  
referenced by ((char*)$param_1)[16]1514         DD->num = num;
 1515  
 1516         switch ( DD->dt ) 
 1517         {
 1518                 case TEV_DATA_NULLbreak;
 1519  
 1520                 case TEV_DATA_BYTE
 1521                 {
 1522                         TRC_PVMCKERR( pvm_upkbyte( DD->data, num, 1 ),
 1523                                 "Event BYTE Unpack", return( TRC_FALSE ) );
 1524  
 1525                         break;
 1526                 }
   ...
 1598                 }
 1599  
 1600                 case TEV_DATA_USHORT
 1601                 {
 1602                         TRC_PVMCKERR( pvm_upkshort( DD->data, num, 1 ),
 1603                                 "Event USHORT Unpack", return( TRC_FALSE ) );
 1604  
 1605                         break;
 1606                 }
 1607  
 1608                 case TEV_DATA_STRING: 
 1609                 {
 1610                         if ( num < 1 )
 1611                                 break;
 1612  
leaked1613                         DD->data = (TRC_VALUE) malloc( (unsigned) num 
referenced by ((char*)$param_1)[16]1614                                         * sizeof(char *) );
 1615                         trc_memcheck( DD->data, "String Array" );
Preconditions
&$unknown_2767799 >= 1
((char*)$param_1)[8] = 12
((char*)$param_1)[12] = 128
Postconditions
DD' = $param_1
TRC_TMP_CC' >= 0
bytes_after(&$heap_215865)' = 8 * &$unknown_2767799
$heap_215865' is allocated by malloc
$heap_215865' is allocated
bytes_before(&$heap_215865)' = 0
bytes_after(&$heap_215866)' = 8 * &$unknown_2767799
$heap_215866' is allocated by malloc
$heap_215866' is allocated
bytes_before(&$heap_215866)' = 0
num' = &$unknown_2767799




Change Warning 2852.2915 : Leak

Priority:
State:
Finding:
Owner:
Note: