From: Lennart Poettering Date: Tue, 23 Feb 2021 14:11:07 +0000 (+0100) Subject: dissect-image: initially fds[] array fully X-Git-Tag: v248-rc2~1^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d9119c00fa9c2937e8309cd3d145d6cb55a2a5a5;p=thirdparty%2Fsystemd.git dissect-image: initially fds[] array fully THe previous code wasn't wrong, but it's certainly nicer to avoid a partially uninitialized array here, hence Coverity has a point complaining about this. Coverity 1446731 --- diff --git a/src/shared/dissect-image.c b/src/shared/dissect-image.c index 791d747136e..6ad68584e5d 100644 --- a/src/shared/dissect-image.c +++ b/src/shared/dissect-image.c @@ -2280,8 +2280,11 @@ int dissected_image_acquire_metadata(DissectedImage *m) { log_debug("No image name available, will skip extension-release metadata"); for (; n_meta_initialized < _META_MAX; n_meta_initialized ++) { - if (!paths[n_meta_initialized]) + if (!paths[n_meta_initialized]) { + fds[2*n_meta_initialized] = fds[2*n_meta_initialized+1] = -1; continue; + } + if (pipe2(fds + 2*n_meta_initialized, O_CLOEXEC) < 0) { r = -errno; goto finish; @@ -2435,11 +2438,8 @@ int dissected_image_acquire_metadata(DissectedImage *m) { strv_free_and_replace(m->extension_release, extension_release); finish: - for (k = 0; k < n_meta_initialized; k++) { - if (!paths[k]) - continue; + for (k = 0; k < n_meta_initialized; k++) safe_close_pair(fds + 2*k); - } return r; }