When clearing the memory of 'key' in function openssh_read(), only the size
of the pointer to the data instead of the whole size of struct openssh_key
is cleared. Correct the size calculation as detected by Coverity CID 1191543.

Signed-off-by: Christian Engelmayer <[email protected]>
---
 keyimport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/keyimport.c b/keyimport.c
index 66a7f55..2f9d3fa 100644
--- a/keyimport.c
+++ b/keyimport.c
@@ -810,7 +810,7 @@ static sign_key *openssh_read(const char *filename, char * 
UNUSED(passphrase))
        }
        m_burn(key->keyblob, key->keyblob_size);
        m_free(key->keyblob);
-       m_burn(key, sizeof(key));
+       m_burn(key, sizeof(*key));
        m_free(key);
        if (errmsg) {
                fprintf(stderr, "Error: %s\n", errmsg);
-- 
1.9.1

Reply via email to