? patch-netpgp_handle_writer_error_handling.diff.txt Index: writer.c =================================================================== RCS file: /cvsroot/src/crypto/external/bsd/netpgp/dist/src/lib/writer.c,v retrieving revision 1.33 diff -u -p -r1.33 writer.c --- writer.c 5 Mar 2012 02:20:18 -0000 1.33 +++ writer.c 28 Mar 2020 01:44:32 -0000 @@ -1040,10 +1040,17 @@ pgp_push_enc_se_ip(pgp_output_t *output, /* Create and write encrypted PK session key */ if ((encrypted_pk_sesskey = pgp_create_pk_sesskey(pubkey, cipher)) == NULL) { + free(se_ip); (void) fprintf(stderr, "pgp_push_enc_se_ip: null pk sesskey\n"); return 0; } - pgp_write_pk_sesskey(output, encrypted_pk_sesskey); + + if (pgp_write_pk_sesskey(output, encrypted_pk_sesskey) == 0) { + free(se_ip); + (void) fprintf(stderr, "pgp_push_enc_se_ip: failed to write session key\n"); + return 0; + + } /* Setup the se_ip */ if ((encrypted = calloc(1, sizeof(*encrypted))) == NULL) {