Text  |   XML   |   Visible Warnings:

Pvm : Pvm analysis 1 : Free Null Pointer  at lpvmgen.c:1982

Categories: LANG.ALLOC.FNP CWE:590
Warning ID: 2794.2854
Similar Warnings: 2794.2853
Procedure: pvm_addhosts
Trace: View
Modified: Wed Sep 2 12:47:04 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 */  /* Uninitialized Variable (ID: 2795.2855) */
 1983                                                         pvmupkstralloc(&buf);   PVM_FREE(buf);   /* Double Free (ID: 2793.2852) */  /* 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_1812628 != 0
&$unknown_1812642 >= 1
&$unknown_1812643 != 0
pvmautoerr != 2
pvmautoerr != 3
pvmmytid = -1
pvmtoplvl != 0
pvmtrc.trctid >= 1
pvmtrc.trcopt != 2
pvmtrc.trcopt != 3
Postconditions
buf' = 0
count' >= 2
$heap_185951' is allocated by malloc
bytes_before(&$heap_185951)' = 0
names' = $param_1
pvmampushed' = 0
pvmamtraced' = pvmtoplvl
pvmrbuf' = &$unknown_1812643
pvmschedtid' = &$unknown_1812628
pvmtoplvl' = 0
rbf' = -16
sbf' = -2
sv' = &$heap_185951
svp' = $param_3




Change Warning 2794.2854 : Free Null Pointer

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