33 lines
859 B
Diff
33 lines
859 B
Diff
From 9c093c4f092dd6bd1e0c8d2b852a72b74db076c2 Mon Sep 17 00:00:00 2001
|
|
From: Michal Domonkos <mdomonko@redhat.com>
|
|
Date: Tue, 15 Jun 2021 13:34:21 +0200
|
|
Subject: [PATCH] Fix memory leak in decodePkts()
|
|
|
|
Found by Coverity.
|
|
---
|
|
rpmio/rpmpgp.c | 6 +++++-
|
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c
|
|
index c59185dce..ee5c81e24 100644
|
|
--- a/rpmio/rpmpgp.c
|
|
+++ b/rpmio/rpmpgp.c
|
|
@@ -1371,9 +1371,13 @@ static pgpArmor decodePkts(uint8_t *b, uint8_t **pkt, size_t *pktlen)
|
|
crc = pgpCRC(dec, declen);
|
|
if (crcpkt != crc) {
|
|
ec = PGPARMOR_ERR_CRC_CHECK;
|
|
+ _free(dec);
|
|
goto exit;
|
|
}
|
|
- if (pkt) *pkt = dec;
|
|
+ if (pkt)
|
|
+ *pkt = dec;
|
|
+ else
|
|
+ _free(dec);
|
|
if (pktlen) *pktlen = declen;
|
|
ec = PGPARMOR_PUBKEY; /* XXX ASCII Pubkeys only, please. */
|
|
goto exit;
|
|
--
|
|
2.27.0
|
|
|