os_getcwd(): do not realloc if there was no malloc().
[exim.git] / src / src / os.c
index 47af038f78216beaf73e6dcc1935dd28695dec21..ca24e8dd27e47d42df5140e55de39cd0a072c6d8 100644 (file)
@@ -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;
 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
 
 }
 #endif