1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +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:
Simon Tatham 2002-11-17 15:06:16 +00:00
parent 9902bc67fc
commit c206f0d8e5

View File

@ -198,14 +198,14 @@ char *enum_settings_next(void *handle, char *buffer, int buflen)
struct enumsettings *e = (struct enumsettings *) handle; struct enumsettings *e = (struct enumsettings *) handle;
char *otherbuf; char *otherbuf;
otherbuf = smalloc(3 * buflen); otherbuf = smalloc(3 * buflen);
if (otherbuf && RegEnumKey(e->key, e->i++, otherbuf, if (RegEnumKey(e->key, e->i++, otherbuf, 3 * buflen) == ERROR_SUCCESS) {
3 * buflen) == ERROR_SUCCESS) {
unmungestr(otherbuf, buffer, buflen); unmungestr(otherbuf, buffer, buflen);
sfree(otherbuf); sfree(otherbuf);
return buffer; return buffer;
} else } else {
sfree(otherbuf);
return NULL; return NULL;
}
} }
void enum_settings_finish(void *handle) void enum_settings_finish(void *handle)