Fix memory leak in upgrade_crypt_ftr
The structure crypt_persist_data was allocated,
but never freed.
Added free of allocated memory in normal and
error case.
Change-Id: I9aaa067e6f6501e8ce007f8659004b5dbcf2b246
diff --git a/cryptfs.c b/cryptfs.c
index aaa2b86..534f0c0 100644
--- a/cryptfs.c
+++ b/cryptfs.c
@@ -567,6 +567,7 @@
/* Need to initialize the persistent data area */
if (lseek64(fd, pdata_offset, SEEK_SET) == -1) {
SLOGE("Cannot seek to persisent data offset\n");
+ free(pdata);
return;
}
/* Write all zeros to the first copy, making it invalid */
@@ -581,6 +582,7 @@
crypt_ftr->persist_data_offset[0] = pdata_offset;
crypt_ftr->persist_data_offset[1] = pdata_offset + CRYPT_PERSIST_DATA_SIZE;
crypt_ftr->minor_version = 1;
+ free(pdata);
}
if ((crypt_ftr->major_version == 1) && (crypt_ftr->minor_version == 1)) {