diff --git a/zipl/include/job.h b/zipl/include/job.h index ccd12a3a..001d6b2f 100644 --- a/zipl/include/job.h +++ b/zipl/include/job.h @@ -77,6 +77,7 @@ struct job_common_ipl_data { address_t ramdisk_addr; bool optional; bool ignore; + bool ramdisk_created; }; struct job_ipl_data { diff --git a/zipl/src/job.c b/zipl/src/job.c index 15369a74..7ae43a70 100644 --- a/zipl/src/job.c +++ b/zipl/src/job.c @@ -389,6 +389,8 @@ free_common_ipl_data(struct job_common_ipl_data *common) { free(common->image); free(common->parmline); + if (common->ramdisk_created) + unlink(common->ramdisk); free(common->ramdisk); } @@ -967,6 +969,7 @@ check_job_images_ngdump(struct job_dump_data* dump, char *name) value = NULL; } else if (strcmp(param, "initrd") == 0) { dump->common.ramdisk = value; + dump->common.ramdisk_created = true; value = NULL; } else if (strcmp(param, "cmdline") == 0) { dump->common.parmline = value;