mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-09 09:27:59 +00:00
Fix various segfaults and heap trashes. Thanks to Andrew Mobbs.
[originally from svn r29]
This commit is contained in:
parent
3b1389a474
commit
ee9e246617
4
noise.c
4
noise.c
@ -73,7 +73,7 @@ void noise_get_heavy(void (*func) (void *, int)) {
|
||||
FILE_SHARE_READ | FILE_SHARE_WRITE,
|
||||
NULL, OPEN_EXISTING, 0, NULL);
|
||||
|
||||
if (seedf) {
|
||||
if (seedf != INVALID_HANDLE_VALUE) {
|
||||
while (1) {
|
||||
char buf[1024];
|
||||
DWORD len;
|
||||
@ -96,7 +96,7 @@ void random_save_seed(void) {
|
||||
seedf = CreateFile(seedpath, GENERIC_WRITE, 0,
|
||||
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
|
||||
if (seedf) {
|
||||
if (seedf != INVALID_HANDLE_VALUE) {
|
||||
int len;
|
||||
DWORD lenwritten;
|
||||
void *data;
|
||||
|
4
ssh.c
4
ssh.c
@ -174,8 +174,8 @@ static void s_wrpkt_start(int type, int len) {
|
||||
pktout.length = len-5;
|
||||
if (pktout.maxlen < biglen) {
|
||||
pktout.maxlen = biglen;
|
||||
pktout.data = (pktout.data == NULL ? malloc(biglen) :
|
||||
realloc(pktout.data, biglen));
|
||||
pktout.data = (pktout.data == NULL ? malloc(biglen+4) :
|
||||
realloc(pktout.data, biglen+4));
|
||||
if (!pktout.data)
|
||||
fatalbox("Out of memory");
|
||||
}
|
||||
|
2
windlg.c
2
windlg.c
@ -116,7 +116,6 @@ static void save_settings (char *section, int do_host) {
|
||||
|
||||
if (RegCreateKey(HKEY_CURRENT_USER, puttystr, &subkey1)!=ERROR_SUCCESS ||
|
||||
RegCreateKey(subkey1, p, &sesskey) != ERROR_SUCCESS) {
|
||||
free(p);
|
||||
sesskey = NULL;
|
||||
}
|
||||
|
||||
@ -221,7 +220,6 @@ static void load_settings (char *section, int do_host) {
|
||||
|
||||
if (RegOpenKey(HKEY_CURRENT_USER, puttystr, &subkey1) != ERROR_SUCCESS ||
|
||||
RegOpenKey(subkey1, p, &sesskey) != ERROR_SUCCESS) {
|
||||
free(p);
|
||||
sesskey = NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user