From: Tian Yuchen Date: Sat, 04 Apr 2026 17:07:27 GMT Subject: Re: [BUG] git diff --no-index segfaults on large files (NULL object database) Message-ID: <4be492cf-347b-4fa5-9bdd-83e7ea8abd92@malon.dev> In-Reply-To: On 4/5/26 00:53, Luca Stefani wrote: > Thanks for looking into it. > Locally, I simply check against null storage and it works just fine, > flags is always 0 in my experiments so a check against > INDEX_WRITE_OBJECT also worked. > > diff --git a/object-file.c b/object-file.c > index f0b029ff0b..68303aa99c 100644 > --- a/object-file.c > +++ b/object-file.c > @@ -1654,7 +1654,8 @@ int index_fd(struct index_state *istate, struct > object_id *oid, > } else if ((st->st_size >= 0 && > (size_t)st->st_size <= > repo_settings_get_big_file_threshold(istate->repo)) || > type != OBJ_BLOB || > - (path && would_convert_to_git(istate, path))) { > + (path && would_convert_to_git(istate, path)) || > + !(flags & INDEX_WRITE_OBJECT)) { > ret = index_core(istate, oid, fd, xsize_t(st->st_size), > type, path, flags); > } else { > > Luca. That looks good, almost exactly what I was about to send. I was mistaken— there isn’t a hash_write_object flag after all ;-) It looks like this is your first time posting on the Git mailing list. Would you consider contributing this (as a patch)? Thanks! Yuchen