diff options
Diffstat (limited to 'sshd.c')
-rw-r--r-- | sshd.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -389,9 +389,12 @@ void | |||
389 | destroy_sensitive_data(void) | 389 | destroy_sensitive_data(void) |
390 | { | 390 | { |
391 | /* Destroy the private and public keys. They will no longer be needed. */ | 391 | /* Destroy the private and public keys. They will no longer be needed. */ |
392 | RSA_free(public_key); | 392 | if (public_key) |
393 | RSA_free(sensitive_data.private_key); | 393 | RSA_free(public_key); |
394 | RSA_free(sensitive_data.host_key); | 394 | if (sensitive_data.private_key) |
395 | RSA_free(sensitive_data.private_key); | ||
396 | if (sensitive_data.host_key) | ||
397 | RSA_free(sensitive_data.host_key); | ||
395 | if (sensitive_data.dsa_host_key != NULL) | 398 | if (sensitive_data.dsa_host_key != NULL) |
396 | key_free(sensitive_data.dsa_host_key); | 399 | key_free(sensitive_data.dsa_host_key); |
397 | } | 400 | } |