From: Lennart Poettering Date: Sun, 2 Nov 2025 08:32:16 +0000 (+0100) Subject: kernel-install: move staging area to /var/tmp/ X-Git-Tag: v259-rc1~182 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8fcf7de7c4e1649ea587909716b1786e23477a6;p=thirdparty%2Fsystemd.git kernel-install: move staging area to /var/tmp/ The generated files (UKIs...) can potentially be huge, hence create them in /var/tmp/, rather than /tmp/. --- diff --git a/src/kernel-install/kernel-install.c b/src/kernel-install/kernel-install.c index a636a91dd2b..97c4b3a352b 100644 --- a/src/kernel-install/kernel-install.c +++ b/src/kernel-install/kernel-install.c @@ -810,7 +810,6 @@ static int context_ensure_layout(Context *c) { } static int context_set_up_staging_area(Context *c) { - static const char *template = "/tmp/kernel-install.staging.XXXXXX"; int r; assert(c); @@ -818,12 +817,19 @@ static int context_set_up_staging_area(Context *c) { if (c->staging_area) return 0; - if (c->action == ACTION_INSPECT) { + const char *d; + r = var_tmp_dir(&d); + if (r < 0) + return log_error_errno(r, "Failed to determine temporary directory location: %m"); + + _cleanup_free_ char *template = path_join(d, "kernel-install.staging.XXXXXX"); + if (!template) + return log_oom(); + + if (c->action == ACTION_INSPECT) /* This is only used for display. The directory will not be created. */ - c->staging_area = strdup(template); - if (!c->staging_area) - return log_oom(); - } else { + c->staging_area = TAKE_PTR(template); + else { r = mkdtemp_malloc(template, &c->staging_area); if (r < 0) return log_error_errno(r, "Failed to create staging area: %m"); diff --git a/src/kernel-install/test-kernel-install.sh b/src/kernel-install/test-kernel-install.sh index e904ee53758..922c593e600 100755 --- a/src/kernel-install/test-kernel-install.sh +++ b/src/kernel-install/test-kernel-install.sh @@ -318,7 +318,7 @@ diff -u <(echo "$output") - >&2 <