Skip to content

Commit

Permalink
libflash: Initialise entries list earlier
Browse files Browse the repository at this point in the history
In the bail-out path we call ffs_close() to tear down the partially
initialised ffs_handle. ffs_close() expects the entries list to be
initialised so we need to do that earlier to prevent a null pointer
dereference.

Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
  • Loading branch information
oohal authored and stewartsmith committed May 26, 2017
1 parent 41dc3eb commit 25e42ba
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion libflash/libffs.c
Expand Up @@ -256,6 +256,7 @@ int ffs_init(uint32_t offset, uint32_t max_size, struct blocklevel_device *bl,
f->toc_offset = offset;
f->max_size = max_size;
f->bl = bl;
list_head_init(&f->hdr.entries);

/* Convert and check flash header */
rc = ffs_check_convert_header(&f->hdr, &raw_hdr);
Expand Down Expand Up @@ -298,7 +299,6 @@ int ffs_init(uint32_t offset, uint32_t max_size, struct blocklevel_device *bl,
goto out;
}

list_head_init(&f->hdr.entries);
for (i = 0; i < be32_to_cpu(raw_hdr.entry_count); i++) {
struct ffs_entry *ent = calloc(1, sizeof(struct ffs_entry));
if (!ent) {
Expand Down

0 comments on commit 25e42ba

Please sign in to comment.