@@ -643,12 +643,7 @@ static int midx_write(
643643 int error = 0 ;
644644 size_t i ;
645645 struct git_pack_file * p ;
646- struct git_midx_header hdr = {
647- .signature = htonl (MIDX_SIGNATURE ),
648- .version = MIDX_VERSION ,
649- .object_id_version = MIDX_OBJECT_ID_VERSION ,
650- .base_midx_files = 0 ,
651- };
646+ struct git_midx_header hdr = {0 };
652647 uint32_t oid_fanout_count ;
653648 uint32_t object_large_offsets_count ;
654649 uint32_t oid_fanout [256 ];
@@ -662,11 +657,16 @@ static int midx_write(
662657 object_entry_array_t object_entries_array = GIT_ARRAY_INIT ;
663658 git_vector object_entries = GIT_VECTOR_INIT ;
664659 git_hash_ctx ctx ;
665- struct midx_write_hash_context hash_cb_data = {
666- .write_cb = write_cb ,
667- .cb_data = cb_data ,
668- .ctx = & ctx ,
669- };
660+ struct midx_write_hash_context hash_cb_data = {0 };
661+
662+ hdr .signature = htonl (MIDX_SIGNATURE );
663+ hdr .version = MIDX_VERSION ;
664+ hdr .object_id_version = MIDX_OBJECT_ID_VERSION ;
665+ hdr .base_midx_files = 0 ;
666+
667+ hash_cb_data .write_cb = write_cb ;
668+ hash_cb_data .cb_data = cb_data ;
669+ hash_cb_data .ctx = & ctx ;
670670
671671 error = git_hash_ctx_init (& ctx );
672672 if (error < 0 )
@@ -677,12 +677,12 @@ static int midx_write(
677677 git_vector_sort (& w -> packs );
678678 git_vector_foreach (& w -> packs , i , p ) {
679679 git_buf relative_index = GIT_BUF_INIT ;
680- struct object_entry_cb_state state = {
681- .pack_index = (uint32_t )i ,
682- .object_entries_array = & object_entries_array ,
683- };
680+ struct object_entry_cb_state state = {0 };
684681 size_t path_len ;
685682
683+ state .pack_index = (uint32_t )i ;
684+ state .object_entries_array = & object_entries_array ;
685+
686686 error = git_buf_sets (& relative_index , p -> pack_name );
687687 if (error < 0 )
688688 goto cleanup ;
@@ -694,6 +694,8 @@ static int midx_write(
694694 path_len = git_buf_len (& relative_index );
695695 if (path_len <= strlen (".pack" ) || git__suffixcmp (git_buf_cstr (& relative_index ), ".pack" ) != 0 ) {
696696 git_buf_dispose (& relative_index );
697+ git_error_set (GIT_ERROR_INVALID , "invalid packfile name: '%s'" , p -> pack_name );
698+ error = -1 ;
697699 goto cleanup ;
698700 }
699701 path_len -= strlen (".pack" );
0 commit comments