Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Double Free  at lpvmgen.c:1983

Categories: LANG.ALLOC.DF CWE:415
Warning ID: 2793.2852
Procedure: pvm_addhosts
Trace: View
Modified: Wed Sep 2 12:47:01 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/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");
 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 (ID: 2794.2854) */  /* Uninitialized Variable (ID: 2795.2855) */
*buf is freed1983                                                         pvmupkstralloc(&buf);   PVM_FREE(buf);     /* Double Free */  /* Free Null Pointer (ID: 2794.2853) */
 1984                                                         pvm_upkint(&tmp, 1, 1);
 1985                                                         pvm_upkint(&tmp, 1, 1);
 1986                                                         if (sv[i] >= 0)   /* Null Pointer Dereference (ID: 2796.2856) */
 1987                                                                 cc++;
Preconditions
$param_2 >= 1
&$unknown_1790899 != 0
&$unknown_1790913 >= 1
&$unknown_1790914 != 0
pvmautoerr != 2
pvmautoerr != 3
pvmmytid = -1
pvmtoplvl != 0
pvmtrc.trctid >= 1
pvmtrc.trcopt != 2
pvmtrc.trcopt != 3
Postconditions
$unknown_1790923' is freed
buf' = &$unknown_1790923
count' >= 2
$heap_185381' is allocated by malloc
bytes_before(&$heap_185381)' = 0
names' = $param_1
pvmampushed' = 0
pvmamtraced' = pvmtoplvl
pvmrbuf' = &$unknown_1790914
pvmschedtid' = &$unknown_1790899
pvmtoplvl' = 0
rbf' = -16
sbf' = -2
sv' = &$heap_185381
svp' = $param_3




Change Warning 2793.2852 : Double Free

Priority:
State:
Finding:
Owner:
Note: