]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ds/midx-write-fixes' into maint-2.51
authorJunio C Hamano <gitster@pobox.com>
Wed, 15 Oct 2025 17:29:30 +0000 (10:29 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Oct 2025 17:29:30 +0000 (10:29 -0700)
Fixes multiple crashes around midx write-out codepaths.

* ds/midx-write-fixes:
  midx-write: simplify error cases
  midx-write: reenable signed comparison errors
  midx-write: use uint32_t for preferred_pack_idx
  midx-write: use cleanup when incremental midx fails
  midx-write: put failing response value back
  midx-write: only load initialized packs

1  2 
midx-write.c

diff --cc midx-write.c
index a0aceab5e0d1acd9de27a719676d62fc97fef4d0,b7824d21fc1854d220538acb34de47f052250941..72189f74bb1ef8fed26c8678d14062ad876207a9
@@@ -916,12 -916,29 +916,11 @@@ cleanup
  static struct multi_pack_index *lookup_multi_pack_index(struct repository *r,
                                                        const char *object_dir)
  {
 -      struct multi_pack_index *result = NULL;
 -      struct multi_pack_index *cur;
 -      char *obj_dir_real = real_pathdup(object_dir, 1);
 -      struct strbuf cur_path_real = STRBUF_INIT;
 -
 -      /* Ensure the given object_dir is local, or a known alternate. */
 -      find_odb(r, obj_dir_real);
 -
 -      for (cur = get_multi_pack_index(r); cur; cur = cur->next) {
 -              strbuf_realpath(&cur_path_real, cur->object_dir, 1);
 -              if (!strcmp(obj_dir_real, cur_path_real.buf)) {
 -                      result = cur;
 -                      goto cleanup;
 -              }
 -      }
 -
 -cleanup:
 -      free(obj_dir_real);
 -      strbuf_release(&cur_path_real);
 -      return result;
 +      struct odb_source *source = odb_find_source(r->objects, object_dir);
 +      return get_multi_pack_index(source);
  }
  
- static int fill_packs_from_midx(struct write_midx_context *ctx,
-                               const char *preferred_pack_name, uint32_t flags)
+ static int fill_packs_from_midx(struct write_midx_context *ctx)
  {
        struct multi_pack_index *m;