]> git.seodisparate.com - SimpleArchiver/commitdiff
Fix reordering of cleanup fns in archiver.c
authorStephen Seo <seo.disparate@gmail.com>
Fri, 4 Oct 2024 08:35:12 +0000 (17:35 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Fri, 4 Oct 2024 08:35:12 +0000 (17:35 +0900)
src/archiver.c

index 646ad15a349e2b107bf4431e5f36e019dbb86ddf..21976d97b963302e6ba14ed3956feab40b82fcdf 100644 (file)
@@ -2062,6 +2062,11 @@ int simple_archiver_write_v1(FILE *out_f, SDArchiverState *state,
     if (state->parsed->compressor && state->parsed->decompressor) {
       // Is compressing.
 
+      size_t temp_filename_size = strlen(state->parsed->temp_dir) + 1 + 64;
+      __attribute__((cleanup(
+          simple_archiver_helper_cleanup_c_string))) char *temp_filename =
+          malloc(temp_filename_size);
+
       __attribute__((cleanup(cleanup_temp_filename_delete))) void **ptrs_array =
           malloc(sizeof(void *) * 2);
       ptrs_array[0] = NULL;
@@ -2070,11 +2075,6 @@ int simple_archiver_write_v1(FILE *out_f, SDArchiverState *state,
       __attribute__((cleanup(simple_archiver_helper_cleanup_FILE)))
       FILE *temp_fd = NULL;
 
-      size_t temp_filename_size = strlen(state->parsed->temp_dir) + 1 + 64;
-      __attribute__((cleanup(
-          simple_archiver_helper_cleanup_c_string))) char *temp_filename =
-          malloc(temp_filename_size);
-
       if (state->parsed->temp_dir) {
         size_t idx = 0;
         size_t temp_dir_len = strlen(state->parsed->temp_dir);