Hi,
I have found a memory leak in PostgreSQL 7.3.4,
src/interfaces/libpq/fe-exec.c line 279:
buffer = realloc(buffer, buflen);
if (buffer == NULL)
return NULL;
The realloc manpage says:
"If realloc() fails the original block is left untouched - it is
not freed or moved."
i.e. "buffer" is not freed if there is not enough memory for
realloc. The code should be like this:
temp_buffer = realloc(buffer, buflen);
if (temp_buffer == NULL) {
free(buffer);
return NULL;
}
buffer = temp_buffer;
Regards,
Max Kellermann