mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
Thanks to Hans-Juergen Petrich for spotting this tiny memory leak:
`otherbuf' should still be freed even if the RegEnumKey function that was supposed to fill it with data failed. While I'm at it, also remove the redundant check for its non-NULL-ness (what's the point of having a malloc wrapper that dies rather than return NULL if you then waste effort checking its return value for NULL _anyway_, eh?). [originally from svn r2217]
This commit is contained in:
parent
9902bc67fc
commit
c206f0d8e5
@ -198,14 +198,14 @@ char *enum_settings_next(void *handle, char *buffer, int buflen)
|
||||
struct enumsettings *e = (struct enumsettings *) handle;
|
||||
char *otherbuf;
|
||||
otherbuf = smalloc(3 * buflen);
|
||||
if (otherbuf && RegEnumKey(e->key, e->i++, otherbuf,
|
||||
3 * buflen) == ERROR_SUCCESS) {
|
||||
if (RegEnumKey(e->key, e->i++, otherbuf, 3 * buflen) == ERROR_SUCCESS) {
|
||||
unmungestr(otherbuf, buffer, buflen);
|
||||
sfree(otherbuf);
|
||||
return buffer;
|
||||
} else
|
||||
} else {
|
||||
sfree(otherbuf);
|
||||
return NULL;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void enum_settings_finish(void *handle)
|
||||
|
Loading…
Reference in New Issue
Block a user