diff --git a/lib/bitmap/bitmap.c b/lib/bitmap/bitmap.c index 991cf9dfac0..bb64d9b13ec 100644 --- a/lib/bitmap/bitmap.c +++ b/lib/bitmap/bitmap.c @@ -315,8 +315,11 @@ struct BM *BM_file_read(FILE *fp) if (NULL == (map = (struct BM *)malloc(sizeof(struct BM)))) return (NULL); - if (fread(&c, sizeof(char), sizeof(char), fp) != sizeof(char)) + if (fread(&c, sizeof(char), sizeof(char), fp) != sizeof(char)) { + free(map); return NULL; + } + if (c != BM_MAGIC) { free(map); return NULL;