diff options
| author | Steve Slaven <bpk@hoopajoo.net> | 2007-03-08 06:30:31 (GMT) | 
|---|---|---|
| committer | Steve Slaven <bpk@hoopajoo.net> | 2007-03-08 06:30:31 (GMT) | 
| commit | 8e32cb9a8796ace1600b96e567ecbaf3a2b53c15 (patch) | |
| tree | 776669bdcd29af3cc650896f139c0848589a7600 /ptr.c | |
| parent | 6f63dcd173009042b570e3da58cf16458ef849da (diff) | |
| download | powwow-8e32cb9a8796ace1600b96e567ecbaf3a2b53c15.zip powwow-8e32cb9a8796ace1600b96e567ecbaf3a2b53c15.tar.gz powwow-8e32cb9a8796ace1600b96e567ecbaf3a2b53c15.tar.bz2 | |
This should again fix the double-free bug that was once fixed in perlwow
Diffstat (limited to 'ptr.c')
| -rw-r--r-- | ptr.c | 7 | 
1 files changed, 5 insertions, 2 deletions
| @@ -37,6 +37,7 @@ ptr ptrnew __P1 (int,max)      else if (max < 0 || max + sizeofptr < max) /* overflow! */  	error = NO_MEM_ERROR;      else if ((p = (ptr)malloc(max + sizeofptr))) { +	p->signature = PTR_SIG;  	p->max = max;  	ptrdata(p)[p->len = 0] = '\0';      } else @@ -81,10 +82,12 @@ ptr ptrdup __P1 (ptr,src)  }  /* delete (free) a ptr */ -void ptrdel __P1 (ptr,p) +void _ptrdel __P1 (ptr,p)  { -    if (p) +    if (p && p->signature == PTR_SIG)  	free((void *)p); +    //else +	//fprintf( stderr, "Tried to free non ptr @%x\n", p );  }  /* clear a ptr */ | 
