Text  |   XML   |   Visible Warnings:

pvm3.4.6 : pvm3.4.6 analysis 2 : Integer Overflow of Allocation Size  at tdpro.c:1897

Categories: ALLOC.IOAS BSI:MALLOC-OVERFLOW CWE:680
Warning ID: 301.28978
Procedure: tm_mca
Trace: view
Modified: Thu Nov 26 11:29:21 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/tdpro.c
   Enter tm_mca
 1863 tm_mca(tp, mp) 
 1864         struct task *tp;
 1865         struct pmsg *mp;
 1866 {
 1867         struct mca *mcap;                       /* mca descriptor */ 
 1868         int ndst;                                       /* num of dst tids */ 
 1869         int *dsts;                                      /* dst tids */ 
 1870         int tid;
 1871         int i, j;
 1872  
 1873         /*
 1874         * unpack list of dst tids from message (expect it to be sorted).
 1875         * discard tids to nonexistent foreign hosts.
 1876         */ 
 1877  
 1878         mcap = mca_new();
 1879         mcap->mc_tid = TIDGID | tp->t_tid;   /* Null Pointer Dereference (ID: 305.28982) */
 1880         upkint(mp, &ndst);
 1881         dsts = TALLOC(ndst, int, "dsts");   /* Integer Overflow of Allocation Size (ID: 304.28981) */
 1882         for ( i=0, j=0 ; i < ndst ; i++ ) {
 1883                 upkuint(mp, &tid);
 1884                 if ((tid & tidhmask) == myhostpart || tidtohost(hosts, tid))
 1885                         dsts[j++] = tid;   /* Null Pointer Dereference (ID: 303.28980) */
 1886         }
 1887         ndst = j;
 1888  
 1889         if (ndst < 1)
 1890                 goto noguys;
 1891  
 1892         /*
 1893         * send DM_MCA messages containing tids to destination hosts 
 1894         * make list of destination hosts for us 
 1895         */ 
 1896  
true1897         mcap->mc_dsts = TALLOC(ndst, int, "mcal");      /* XXX cheat, too much space */     /* Integer Overflow of Allocation Size */
Preconditions
&$unknown_1007120 != 0
&$unknown_1007122 >= 1
hosts->ht_last >= 1
$input_12 = 0
Postconditions
dsts' = &$heap_333995
bytes_after(&$heap_333994)' = 20
$heap_333994' is allocated by malloc
$heap_333994' is allocated
bytes_before(&$heap_333994)' = 0
((char*)&$heap_333994)[16]' = 0
((char*)&$heap_333994)[12]' = 0
$heap_333995' is allocated by malloc
$heap_333995' is allocated
bytes_before(&$heap_333995)' = 0
i' >= 2
j' = &$unknown_1007122
mcap' = &$heap_333994
ndst' = &$unknown_1007122
tid' = &$unknown_1007121




Change Warning 301.28978 : Integer Overflow of Allocation Size

Priority:
State:
Finding:
Owner:
Note: