Mercurial > audlegacy-plugins
diff src/adplug/core/a2m.cxx @ 869:48ebfc711a8c trunk
[svn] - guard some potentially improper double delete [] usage
author | nenolod |
---|---|
date | Fri, 16 Mar 2007 21:08:34 -0700 |
parents | cae46214b8bf |
children | 87666f9bf6d0 |
line wrap: on
line diff
--- a/src/adplug/core/a2m.cxx Fri Mar 16 18:58:17 2007 -0700 +++ b/src/adplug/core/a2m.cxx Fri Mar 16 21:08:34 2007 -0700 @@ -138,8 +138,10 @@ initspeed = *orgptr; // v5-8 files have an additional flag byte here if(ch.version == 1 || ch.version == 5) - delete [] org; - delete [] secdata; + { + delete [] org; org = 0; + } + delete [] secdata; secdata = 0; // blocks 1-4 or 1-8 alength = len[1]; @@ -175,7 +177,7 @@ if(ch.numpats > 56) sixdepak(secptr,orgptr,len[8]); } - delete [] secdata; + delete [] secdata; secdata = 0; } else { org = (unsigned char *)secdata; for(l=0;l<alength;l++) org[l] = f->readInt(1); @@ -234,9 +236,13 @@ } if(ch.version == 1 || ch.version == 5) - delete [] org; + { + delete [] org; org = 0; + } else - delete [] secdata; + { + delete [] secdata; secdata = 0; + } fp.close(f); rewind(0); return true; @@ -444,6 +450,6 @@ wdbuf = source; obuf = dest; decode(); - delete [] buf; + if (buf) { delete [] buf; buf = 0; } return output_size; }