From: jacob Date: Wed, 7 Dec 2005 00:24:45 +0000 (+0000) Subject: Institutional failure to memset() things pointed at rather than pointers. X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/commitdiff_plain/fb8344c97d27d06ad634a5f551b55d3d40097086 Institutional failure to memset() things pointed at rather than pointers. Things should now be zeroed and memory not leaked. Spotted by Brant Thomsen. git-svn-id: svn://svn.tartarus.org/sgt/putty@6476 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/import.c b/import.c index 2e2c12fb..6c936ffc 100644 --- a/import.c +++ b/import.c @@ -444,7 +444,7 @@ static struct openssh_key *load_openssh_key(const Filename *filename, memset(ret->keyblob, 0, ret->keyblob_size); sfree(ret->keyblob); } - memset(&ret, 0, sizeof(ret)); + memset(ret, 0, sizeof(*ret)); sfree(ret); } if (errmsg_p) *errmsg_p = errmsg; @@ -461,7 +461,7 @@ int openssh_encrypted(const Filename *filename) ret = key->encrypted; memset(key->keyblob, 0, key->keyblob_size); sfree(key->keyblob); - memset(&key, 0, sizeof(key)); + memset(key, 0, sizeof(*key)); sfree(key); return ret; } @@ -654,7 +654,7 @@ struct ssh2_userkey *openssh_read(const Filename *filename, char *passphrase, } memset(key->keyblob, 0, key->keyblob_size); sfree(key->keyblob); - memset(&key, 0, sizeof(key)); + memset(key, 0, sizeof(*key)); sfree(key); if (errmsg_p) *errmsg_p = errmsg; return retval; @@ -1099,7 +1099,7 @@ static struct sshcom_key *load_sshcom_key(const Filename *filename, memset(ret->keyblob, 0, ret->keyblob_size); sfree(ret->keyblob); } - memset(&ret, 0, sizeof(ret)); + memset(ret, 0, sizeof(*ret)); sfree(ret); } if (errmsg_p) *errmsg_p = errmsg; @@ -1141,7 +1141,7 @@ int sshcom_encrypted(const Filename *filename, char **comment) *comment = dupstr(key->comment); memset(key->keyblob, 0, key->keyblob_size); sfree(key->keyblob); - memset(&key, 0, sizeof(key)); + memset(key, 0, sizeof(*key)); sfree(key); return answer; } @@ -1416,7 +1416,7 @@ struct ssh2_userkey *sshcom_read(const Filename *filename, char *passphrase, } memset(key->keyblob, 0, key->keyblob_size); sfree(key->keyblob); - memset(&key, 0, sizeof(key)); + memset(key, 0, sizeof(*key)); sfree(key); if (errmsg_p) *errmsg_p = errmsg; return ret;