Fix use after free
authorJonathan Dieter <jdieter@gmail.com>
Fri, 14 Sep 2018 14:39:06 +0000 (15:39 +0100)
committerJonathan Dieter <jdieter@gmail.com>
Fri, 14 Sep 2018 14:39:06 +0000 (15:39 +0100)
(Coverity ID: 310897)

Signed-off-by: Jonathan Dieter <jdieter@gmail.com>
src/lib/header.c

index 4cf8be8791c943e9fca6f2191b127fd8694e6ec1..edefd64e44b90ca44ea36f841d3b22503f7e6b8f 100644 (file)
@@ -431,7 +431,6 @@ static bool read_lead(zckCtx *zck) {
 
     if(zck->prep_digest &&
        memcmp(zck->prep_digest, header + length, zck->hash_type.digest_size) != 0) {
-        free(header);
         zck->header_length = 0;
         zck->hdr_digest_loc = 0;
         hash_reset(&(zck->hash_type));
@@ -442,6 +441,7 @@ static bool read_lead(zckCtx *zck) {
                                     zck->hash_type.digest_size),
                   get_digest_string(header + length,
                                     zck->hash_type.digest_size));
+        free(header);
         return false;
     }
     zck->header_digest = zmalloc(zck->hash_type.digest_size);