diff options
author | Daniel Kahn Gillmor <[email protected]> | 2014-12-19 23:07:55 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2014-12-22 12:17:50 +0000 |
commit | b0b3803e8c2959dd67ca96debc54b5c6464f0d41 (patch) | |
tree | 0eef02d3642e1519f7bc365268430bd255d77843 | |
parent | avoid future chance of using uninitialized memory (diff) | |
download | gnupg-b0b3803e8c2959dd67ca96debc54b5c6464f0d41.tar.gz gnupg-b0b3803e8c2959dd67ca96debc54b5c6464f0d41.zip |
scd: Avoid double-free on error condition in scd
* scd/command.c (cmd_readkey): avoid double-free of cert
--
When ksba_cert_new() fails, cert will be double-freed.
Debian-Bug-Id: 773471
Original patch changed by wk to do the free only at leave.
-rw-r--r-- | scd/command.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/scd/command.c b/scd/command.c index dd4191f44..1cc580ac4 100644 --- a/scd/command.c +++ b/scd/command.c @@ -804,10 +804,8 @@ cmd_readkey (assuan_context_t ctx, char *line) rc = ksba_cert_new (&kc); if (rc) - { - xfree (cert); - goto leave; - } + goto leave; + rc = ksba_cert_init_from_mem (kc, cert, ncert); if (rc) { |