From: Junio C Hamano Date: Wed, 15 Oct 2025 17:29:30 +0000 (-0700) Subject: Merge branch 'ds/midx-write-fixes' into maint-2.51 X-Git-Tag: v2.51.1~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7614e4165a14e594df1271d1686fafebc92bf5cd;p=thirdparty%2Fgit.git Merge branch 'ds/midx-write-fixes' into maint-2.51 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 --- 7614e4165a14e594df1271d1686fafebc92bf5cd diff --cc midx-write.c index a0aceab5e0,b7824d21fc..72189f74bb --- a/midx-write.c +++ b/midx-write.c @@@ -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;