| Index: third_party/libxml/src/xmlmemory.c
|
| diff --git a/third_party/libxml/src/xmlmemory.c b/third_party/libxml/src/xmlmemory.c
|
| index 433abb8efedf5dac482ed744857ccfa896d43309..a3dc737fe098c82f55c48742bcd19c3c4c81f7af 100644
|
| --- a/third_party/libxml/src/xmlmemory.c
|
| +++ b/third_party/libxml/src/xmlmemory.c
|
| @@ -58,7 +58,7 @@ void xmlMallocBreakpoint(void);
|
|
|
| /************************************************************************
|
| * *
|
| - * Macros, variables and associated types *
|
| + * Macros, variables and associated types *
|
| * *
|
| ************************************************************************/
|
|
|
| @@ -205,7 +205,8 @@ xmlMallocLoc(size_t size, const char * file, int line)
|
|
|
| if (xmlMemTraceBlockAt == ret) {
|
| xmlGenericError(xmlGenericErrorContext,
|
| - "%p : Malloc(%ld) Ok\n", xmlMemTraceBlockAt, size);
|
| + "%p : Malloc(%lu) Ok\n", xmlMemTraceBlockAt,
|
| + (long unsigned)size);
|
| xmlMallocBreakpoint();
|
| }
|
|
|
| @@ -273,7 +274,8 @@ xmlMallocAtomicLoc(size_t size, const char * file, int line)
|
|
|
| if (xmlMemTraceBlockAt == ret) {
|
| xmlGenericError(xmlGenericErrorContext,
|
| - "%p : Malloc(%ld) Ok\n", xmlMemTraceBlockAt, size);
|
| + "%p : Malloc(%lu) Ok\n", xmlMemTraceBlockAt,
|
| + (long unsigned)size);
|
| xmlMallocBreakpoint();
|
| }
|
|
|
| @@ -311,7 +313,7 @@ xmlMemMalloc(size_t size)
|
| void *
|
| xmlReallocLoc(void *ptr,size_t size, const char * file, int line)
|
| {
|
| - MEMHDR *p;
|
| + MEMHDR *p, *tmp;
|
| unsigned long number;
|
| #ifdef DEBUG_MEMORY
|
| size_t oldsize;
|
| @@ -342,14 +344,17 @@ xmlReallocLoc(void *ptr,size_t size, const char * file, int line)
|
| #endif
|
| xmlMutexUnlock(xmlMemMutex);
|
|
|
| - p = (MEMHDR *) realloc(p,RESERVE_SIZE+size);
|
| - if (!p) {
|
| + tmp = (MEMHDR *) realloc(p,RESERVE_SIZE+size);
|
| + if (!tmp) {
|
| + free(p);
|
| goto error;
|
| }
|
| + p = tmp;
|
| if (xmlMemTraceBlockAt == ptr) {
|
| xmlGenericError(xmlGenericErrorContext,
|
| - "%p : Realloced(%ld -> %ld) Ok\n",
|
| - xmlMemTraceBlockAt, p->mh_size, size);
|
| + "%p : Realloced(%lu -> %lu) Ok\n",
|
| + xmlMemTraceBlockAt, (long unsigned)p->mh_size,
|
| + (long unsigned)size);
|
| xmlMallocBreakpoint();
|
| }
|
| p->mh_tag = MEMTAG;
|
| @@ -509,10 +514,7 @@ xmlMemStrdupLoc(const char *str, const char *file, int line)
|
|
|
| if (xmlMemStopAtBlock == p->mh_number) xmlMallocBreakpoint();
|
|
|
| - if (s != NULL)
|
| - strcpy(s,str);
|
| - else
|
| - goto error;
|
| + strcpy(s,str);
|
|
|
| TEST_POINT
|
|
|
| @@ -580,13 +582,15 @@ xmlMemBlocks(void) {
|
| static void
|
| xmlMemContentShow(FILE *fp, MEMHDR *p)
|
| {
|
| - int i,j,k,len = p->mh_size;
|
| - const char *buf = (const char *) HDR_2_CLIENT(p);
|
| + int i,j,k,len;
|
| + const char *buf;
|
|
|
| if (p == NULL) {
|
| fprintf(fp, " NULL");
|
| return;
|
| }
|
| + len = p->mh_size;
|
| + buf = (const char *) HDR_2_CLIENT(p);
|
|
|
| for (i = 0;i < len;i++) {
|
| if (buf[i] == 0) break;
|
|
|