]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
coredump: make sure we initialize all return parameters on success of save_external_c...
authorLennart Poettering <lennart@poettering.net>
Wed, 26 Mar 2025 15:25:47 +0000 (11:25 -0400)
committerLennart Poettering <lennart@poettering.net>
Wed, 26 Mar 2025 15:37:11 +0000 (11:37 -0400)
src/coredump/coredump.c

index cd1adfb9cd235d2d607c6c007e52b9cf6116faf4..3f6eecbcfab4d6273fff999c2e46cbf707ae2f63 100644 (file)
@@ -615,9 +615,9 @@ static int save_external_coredump(
 
                 *ret_filename = TAKE_PTR(fn_compressed);       /* compressed */
                 *ret_node_fd = TAKE_FD(fd_compressed);         /* compressed */
-                *ret_compressed_size = (uint64_t) st.st_size;  /* compressed */
                 *ret_data_fd = TAKE_FD(fd);
                 *ret_size = uncompressed_size;
+                *ret_compressed_size = (uint64_t) st.st_size;  /* compressed */
                 *ret_truncated = truncated;
                 tmp_compressed = mfree(tmp_compressed);
 
@@ -642,8 +642,10 @@ static int save_external_coredump(
                 return log_error_errno(errno, "Failed to seek on coredump %s: %m", fn);
 
         *ret_filename = TAKE_PTR(fn);
+        *ret_node_fd = -EBADF;
         *ret_data_fd = TAKE_FD(fd);
         *ret_size = (uint64_t) st.st_size;
+        *ret_compressed_size = UINT64_MAX;
         *ret_truncated = truncated;
 
         return 0;