summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/opencdk/read-packet.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/opencdk/read-packet.c b/lib/opencdk/read-packet.c
index f1d165053b..8cba25c471 100644
--- a/lib/opencdk/read-packet.c
+++ b/lib/opencdk/read-packet.c
@@ -596,8 +596,10 @@ read_subpkt(cdk_stream_t inp, cdk_subpkt_t * r_ctx, size_t * r_nbytes)
node->size--;
rc = stream_read(inp, node->d, node->size, &nread);
n += nread;
- if (rc)
+ if (rc) {
+ cdk_subpkt_free(node);
return rc;
+ }
*r_nbytes = n;
if (!*r_ctx)
*r_ctx = node;