tFixes for dodgy memory handling in Win32 installer - vaccinewars - be a doctor… | |
git clone git://src.adamsgaard.dk/vaccinewars | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 88feb29ac0e7cbce3c3f4f1a9aaaaa84fb1e1d7f | |
parent aa38d66d5be2f4de64e3beb58c67937ebd7bcc93 | |
Author: Ben Webb <[email protected]> | |
Date: Thu, 4 Oct 2001 19:17:51 +0000 | |
Fixes for dodgy memory handling in Win32 installer | |
Diffstat: | |
M win32/util.c | 36 ++++++++++++-----------------… | |
1 file changed, 14 insertions(+), 22 deletions(-) | |
--- | |
diff --git a/win32/util.c b/win32/util.c | |
t@@ -35,22 +35,16 @@ void *brealloc(void *pt,UINT numbytes) { | |
UINT numcp; | |
void *newpt; | |
if (!pt && numbytes) return bmalloc(numbytes); | |
- else if (pt && !numbytes) bfree(pt); | |
- else if (pt && numbytes) { | |
- localpt = LocalReAlloc((HLOCAL)pt,numbytes,0); | |
- if (localpt) return (void *)localpt; | |
- else if (GetLastError()==ERROR_LOCKED) { /* OK, we'll do it the hard way */ | |
- newpt=bmalloc(numbytes); | |
- memset(newpt,0,numbytes); | |
- numcp = LocalSize((HLOCAL)pt); | |
- if (numbytes < numcp) numcp = numbytes; | |
- memcpy((char *)newpt,(char *)pt,numcp); | |
- bfree(pt); | |
- return newpt; | |
- } else { | |
- DisplayError("Could not reallocate memory: ",TRUE,TRUE); | |
- ExitProcess(1); | |
- } | |
+ else if (pt && !numbytes) { | |
+ bfree(pt); | |
+ } else if (pt && numbytes) { | |
+ newpt=bmalloc(numbytes); | |
+ memset(newpt,0,numbytes); | |
+ numcp = LocalSize((HLOCAL)pt); | |
+ if (numbytes < numcp) numcp = numbytes; | |
+ memcpy((char *)newpt,(char *)pt,numcp); | |
+ bfree(pt); | |
+ return newpt; | |
} | |
return NULL; | |
} | |
t@@ -90,13 +84,11 @@ void bstr_expandby(bstr *str,unsigned extralength) { | |
} | |
void bstr_setlength(bstr *str,unsigned length) { | |
- if (length+1 <= str->bufsiz) { | |
- if (length < str->length) { | |
- str->length = length; | |
- str->text[length]='\0'; | |
- } | |
+ if (length <= str->length) { | |
+ str->length = length; | |
+ str->text[length]='\0'; | |
} else { | |
- bstr_expandby(str,length+1-str->bufsiz); | |
+ bstr_expandby(str,length-str->length); | |
} | |
} | |