[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#4477) Realloc memory leak during temporary memory shortage
Full_Name: Sean Burford
Version: 2.3.20
OS: Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (65.57.245.11)
When realloc(ptr, size) fails, ptr is still valid. When used like this:
ptr = realloc(ptr, size)
the original valid ptr is discarded if realloc fails. This causes a memory leak
when there is a temporary memory shortage. This was previously discussed, in
different circumstances, in issue 2126.
I'm looking into malloc/realloc fails we seem to be experiencing during
value_add() for modifications of large groups (servers/slapd/value.c). the
realloc in value_add() will leak memory as described above. A temporary
variable should be used to check the return value of realloc.
I have verified this in CVS openldap HEAD.
A quick grep reveals v2ref() in servers/slapd/result.c uses the same poor form
of realloc.