[PATCH firmware-utils v1 01/10] tplink-safeloader: stricter free_image_partition()
Sander Vanheule
sander at svanheule.net
Fri Feb 3 14:03:15 PST 2023
Instead of only free()-ing the allocated data block, also clear the name
and size of a payload entry to indicate that it's become invalid.
Signed-off-by: Sander Vanheule <sander at svanheule.net>
---
src/tplink-safeloader.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/tplink-safeloader.c b/src/tplink-safeloader.c
index d9e16058883c..6c4689c2f67c 100644
--- a/src/tplink-safeloader.c
+++ b/src/tplink-safeloader.c
@@ -3156,8 +3156,15 @@ static void set_partition_names(struct device_info *info)
}
/** Frees an image partition */
-static void free_image_partition(struct image_partition_entry entry) {
- free(entry.data);
+static void free_image_partition(struct image_partition_entry *entry)
+{
+ void *data = entry->data;
+
+ entry->name = NULL;
+ entry->size = 0;
+ entry->data = NULL;
+
+ free(data);
}
static time_t source_date_epoch = -1;
@@ -3598,7 +3605,7 @@ static void build_image(const char *output,
free(image);
for (i = 0; parts[i].name; i++)
- free_image_partition(parts[i]);
+ free_image_partition(&parts[i]);
}
/** Usage output */
--
2.39.0
More information about the openwrt-devel
mailing list