From 5894e3f7009cb7851ffea596ae791cc9fcb4e8c0 Mon Sep 17 00:00:00 2001 From: Sven Schnelle Date: Mon, 8 Nov 2021 08:48:17 +0100 Subject: [PATCH] zipl: add free_common_ipl_data() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add a small helper function to free the common ipl data to avoid having the same code duplicated multiple times. Also remove the if() check before the free as it is allowed to pass NULL pointers to free(). Signed-off-by: Sven Schnelle Reviewed-by: Stefan Haberland Signed-off-by: Jan Höppner --- zipl/src/job.c | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/zipl/src/job.c b/zipl/src/job.c index 74615b84..425f51d0 100644 --- a/zipl/src/job.c +++ b/zipl/src/job.c @@ -367,29 +367,26 @@ free_envblk_data(struct job_envblk_data *data) free(data->buf); } +static void +free_common_ipl_data(struct job_common_ipl_data *common) +{ + free(common->image); + free(common->parmline); + free(common->ramdisk); +} + static void free_ipl_data(struct job_ipl_data* data) { - if (data->common.image != NULL) - free(data->common.image); - if (data->common.parmline != NULL) - free(data->common.parmline); - if (data->common.ramdisk != NULL) - free(data->common.ramdisk); + free_common_ipl_data(&data->common); } static void free_ipl_tape_data(struct job_ipl_tape_data* data) { - if (data->device != NULL) - free(data->device); - if (data->common.image != NULL) - free(data->common.image); - if (data->common.parmline != NULL) - free(data->common.parmline); - if (data->common.ramdisk != NULL) - free(data->common.ramdisk); + free(data->device); + free_common_ipl_data(&data->common); } @@ -404,14 +401,8 @@ free_segment_data(struct job_segment_data* data) static void free_dump_data(struct job_dump_data* data) { - if (data->device != NULL) - free(data->device); - if (data->common.image != NULL) - free(data->common.image); - if (data->common.parmline != NULL) - free(data->common.parmline); - if (data->common.ramdisk != NULL) - free(data->common.ramdisk); + free(data->device); + free_common_ipl_data(&data->common); }