On Fri, Jan 17, 2025 at 02:45:04PM -0800, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > } else if (starts_with(arg, "--pack_header=")) { > > - struct pack_header *hdr; > > - char *c; > > - > > - hdr = (struct pack_header *)input_buffer; > > - hdr->hdr_signature = htonl(PACK_SIGNATURE); > > - hdr->hdr_version = htonl(strtoul(arg + 14, &c, 10)); > > Interesting. So the file-scope static input_buffer[] sits in the > BSS and happens to be well aligned not to cause the problem, but ... I suspect it _is_ a problem, but either: - The OP's test case was small enough to trigger unpack-objects, not index-pack. Possibly: git index-pack --stdin --pack_header=2,2 <no-header.pack would fail for them. - We simply got lucky with alignment based on the other things in BSS, the whim of the compiler, etc. But it is an accident waiting to happen. -Peff