os_getcwd(): do not realloc if there was no malloc().
[exim.git] / src / src / os.c
index f8b8f6e9a65b0594987efb1e332f892121b78e69..ca24e8dd27e47d42df5140e55de39cd0a072c6d8 100644 (file)
@@ -865,7 +865,7 @@ this, for all other systems we provide our own getcwd() */
 unsigned char *
 os_getcwd(unsigned char * buffer, size_t size)
 {
-return getcwd((char *)buffer, size);
+return (unsigned char *) getcwd((char *)buffer, size);
 }
 #else
 #ifndef PATH_MAX
@@ -879,7 +879,7 @@ char * b = (char *)buffer;
 if (!size) size = PATH_MAX;
 if (!b && !(b = malloc(size))) return NULL;
 if (!(b = getcwd(b, size))) return NULL;
-return realloc(b, strlen(b) + 1);
+return buffer ? buffer : realloc(b, strlen(b) + 1);
 }
 #endif