Text  |   XML   |   Visible Warnings:

pvm3.4.6 : pvm3.4.6 analysis 2 : Free Null Pointer  at lpvmgen.c:1982

Categories: ALLOC.FNP CWE:590
Warning ID: 22117.29076
Similar Warnings: 22117.29074
Procedure: pvm_addhosts
Trace: view
Modified: Thu Nov 26 11:31:05 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/lpvmgen.c
   Enter pvm_addhosts
 1936 pvm_addhosts(names, count, svp) 
 1937         char **names;   /* host name vector */ 
 1938         int count;              /* length of names */ 
 1939         int *svp;               /* status vector return */ 
 1940 {
 1941         int sbf, rbf;
 1942         int cc;
 1943         int i;
 1944         int *sv;                /* status vector */ 
 1945         char *buf;
 1946         int tmp;
 1947         TEV_DECLS 
 1948  
 1949         if (TEV_EXCLUSIVE) {
 1950                 if (TEV_DO_TRACE(TEV_ADDHOSTS,TEV_EVENT_ENTRY)) {
 1951                         TEV_PACK_STRING( TEV_DID_HNL, TEV_DATA_ARRAY,
 1952                                 names, count, 1 );
 1953                         TEV_FIN;
 1954                 }
 1955         }
 1956  
 1957         if (count < 1 || count > (TIDHOST >> (ffs(TIDHOST) - 1))) {
 1958                 cc = PvmBadParam;
 1959  
 1960         } else {
 1961                 if (!(cc = BEATASK)) {
 1962                         sbf = pvm_setsbuf(pvm_mkbuf(PvmDataFoo));
 1963                         rbf = pvm_setrbuf(0);
 1964                         pvm_pkint(&count, 1, 1);
 1965                         for (i = 0; i < count; i++)
 1966                                 pvm_pkstr(names[i]);
 1967  
 1968                         if (pvmschedtid)
 1969                                 cc = msendrecv(pvmschedtid, SM_ADDHOST, PvmBaseContext);
 1970                         else 
 1971                                 cc = msendrecv(TIDPVMD, TM_ADDHOST, SYSCTX_TM);
 1972                         if (cc > 0) {
 1973                                 pvm_upkint(&cc, 1, 1);
 1974                                 if (cc >= 0) {
 1975                                         if (cc == count) {
 1976                                                 pvm_upkint(&cc, 1, 1);  /* toss narches */ 
 1977                                                 sv = TALLOC(count, int, "sv1");   /* Integer Overflow of Allocation Size (ID: 22119.29078) */
 1978                                                 cc = 0;
 1979                                                 for (i = 0; i < count; i++) {
 1980                                                         pvm_upkint(&sv[i], 1, 1);
 1981                                                         /* toss name, arch, speed, ds */ 
true1982                                                         pvmupkstralloc(&buf);   PVM_FREE(buf);     /* Free Null Pointer */  /* Uninitialized Variable (ID: 378.29077) */
 1983                                                         pvmupkstralloc(&buf);   PVM_FREE(buf);   /* Double Free (ID: 22118.29075) */  /* Free Null Pointer (ID: 22117.29074) */
 1984                                                         pvm_upkint(&tmp, 1, 1);
 1985                                                         pvm_upkint(&tmp, 1, 1);
 1986                                                         if (sv[i] >= 0)
 1987                                                                 cc++;
Preconditions
count >= 2
&$unknown_3205202 != 0
&$unknown_3205213 >= 1
&$unknown_3205214 != 0
pvmautoerr != 0
pvmautoerr != 2
pvmautoerr != 3
pvmmytid != -1
pvmtoplvl != 0
pvmtrc.trctid != pvmmytid
pvmtrc.trctid >= 1
pvmtrc.trcopt != 1
pvmtrc.trcopt != 2
pvmtrc.trcopt != 3
Postconditions
buf' = 0
errno' != 0
bytes_after(&$heap_369806)' = 4 * count
$heap_369806' is allocated by malloc
bytes_before(&$heap_369806)' = 0
i' = count - 1
pvm_errno' = -2
pvmampushed' = 0
pvmamtraced' = pvmtoplvl
pvmmytid' != -1
pvmrbuf' = &$unknown_3205214
pvmschedtid' = &$unknown_3205202
pvmtoplvl' = 0
pvmtrccodef' = &pvmtrccodef_nop.enc_byte
sbf' = -2
sv' = &$heap_369806




Change Warning 22117.29076 : Free Null Pointer

Because they are very similar, this warning shares annotations with warning 22117.29074.
CodeSonar has selected warning 22117.29074 to represent this group of similar warnings. In order to edit this group, you must edit warning 22117.29074.