From d7ab3446d714d18231dcad9217fc541ff9644588 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 29 Sep 2018 14:27:40 +0200 Subject: [PATCH] check for some NULL-pointers, tackles #333 --- libs/netpgp/src/keyring.c | 4 ++++ libs/netpgp/src/packet-parse.c | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/libs/netpgp/src/keyring.c b/libs/netpgp/src/keyring.c index 598f1f78..03108244 100644 --- a/libs/netpgp/src/keyring.c +++ b/libs/netpgp/src/keyring.c @@ -122,6 +122,10 @@ pgp_key_free(pgp_key_t *key) { unsigned n; + if (key==NULL) { + return; + } + if (key->type == PGP_PTAG_CT_PUBLIC_KEY) { pgp_pubkey_free(&key->key.pubkey); } else { diff --git a/libs/netpgp/src/packet-parse.c b/libs/netpgp/src/packet-parse.c index 9e522a76..65aad5d3 100644 --- a/libs/netpgp/src/packet-parse.c +++ b/libs/netpgp/src/packet-parse.c @@ -968,6 +968,10 @@ cmd_get_passphrase_free(pgp_seckey_passphrase_t *skp) static void free_BN(BIGNUM **pp) { + if (pp==NULL || *pp==NULL) { + return; + } + BN_free(*pp); *pp = NULL; } @@ -1272,6 +1276,10 @@ pgp_pk_sesskey_free(pgp_pk_sesskey_t *sk) void pgp_pubkey_free(pgp_pubkey_t *p) { + if (p==NULL) { + return; + } + switch (p->alg) { case PGP_PKA_RSA: case PGP_PKA_RSA_ENCRYPT_ONLY: