summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/image/pem.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/image/pem.c b/src/image/pem.c
index 721b11ec..3f5d1f30 100644
--- a/src/image/pem.c
+++ b/src/image/pem.c
@@ -145,7 +145,7 @@ static int pem_asn1 ( struct image *image, size_t offset,
*cursor = malloc ( sizeof ( **cursor ) + decoded_max_len );
if ( ! *cursor ) {
rc = -ENOMEM;
- goto err_alloc_decoded;
+ goto err_alloc_cursor;
}
decoded = ( ( ( void * ) *cursor ) + sizeof ( **cursor ) );
@@ -172,8 +172,9 @@ static int pem_asn1 ( struct image *image, size_t offset,
return offset;
err_decode:
- free ( decoded );
- err_alloc_decoded:
+ free ( *cursor );
+ *cursor = NULL;
+ err_alloc_cursor:
free ( encoded );
err_alloc_encoded:
err_end: