From d1ab6be08202c754791efbe2d06446baf4c36893 Mon Sep 17 00:00:00 2001 From: Eduard Shishkin Date: Fri, 24 Apr 2026 14:26:45 +0200 Subject: [PATCH] zipl/src: Don't modify job->data.dump and job->data.mvdump sequentially MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Set job->data.dump.no_compress (job->data.mvdump.force) only after making sure that the job is 'dump' ('mvdump') respectively. Othrewise, the second assignment can potentially corrupt the value that was set by the first assignment. Reviewed-by: Mikhail Zaslonko Signed-off-by: Eduard Shishkin Signed-off-by: Jan Höppner --- zipl/include/job.h | 2 ++ zipl/src/job.c | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/zipl/include/job.h b/zipl/include/job.h index 5d9d2f72..0acea592 100644 --- a/zipl/include/job.h +++ b/zipl/include/job.h @@ -160,6 +160,8 @@ struct job_data { int command_line; int is_secure; int is_ldipl_dump; + int no_compress; + int force; }; static inline struct target *target_at(struct job_target_data *data, diff --git a/zipl/src/job.c b/zipl/src/job.c index 32cd3f54..d384e011 100644 --- a/zipl/src/job.c +++ b/zipl/src/job.c @@ -1548,6 +1548,7 @@ get_job_from_section_data(char* data[], struct job_data* job, char* section) } else job->data.dump.mem = -1LL; + job->data.dump.no_compress = job->no_compress; break; case section_mvdump: /* DUMP TO MULTI-VOLUME job */ @@ -1570,6 +1571,7 @@ get_job_from_section_data(char* data[], struct job_data* job, char* section) (1024LL * 1024LL)); } else job->data.mvdump.mem = -1LL; + job->data.mvdump.force = job->force; break; default: /* Should not happen */ @@ -2021,8 +2023,8 @@ job_get(int argc, char* argv[], struct job_data** data) job->noninteractive = cmdline.noninteractive; job->verbose = cmdline.verbose; job->add_files = cmdline.add_files; - job->data.dump.no_compress = cmdline.no_compress; - job->data.mvdump.force = cmdline.force; + job->no_compress = cmdline.no_compress; + job->force = cmdline.force; job->dry_run = cmdline.dry_run; job->is_secure = SECURE_BOOT_UNDEFINED; job->is_ldipl_dump = cmdline.is_ldipl_dump;