git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [BUG] git crashes with a SIGBUS on sparc64 during pull

From
Jeff King <peff@peff.net>
Date
Jan 17, 2025, 12:52 UTC
Message-ID
<20250117125207.GB2356599@coredump.intra.peff.net>
In-Reply-To
<20250117121121.GA2356599@coredump.intra.peff.net>
On Fri, Jan 17, 2025 at 07:11:21AM -0500, Jeff King wrote:
> Which certainly seems sketchy, though it is kind of interesting that it
> has never been a problem before (and the code has been this way for
> decades). At any rate, the fix is probably this (and we'd want the same
> in index-pack, too, I'd think):

Assuming that helps, here's a series which does that fix plus some associated cleanups.

I'm curious if it's enough. After we write to this unaligned buffer, naturally the next thing we'll do is read from it, and the reading routines will do the same cast (see unpack_all() in unpack-objects). But maybe your platform allows unaligned reads but not writes? Probably I am being too optimistic. :)

  [1/3]: packfile: factor out --pack_header argument parsing
  [2/3]: parse_pack_header_option(): avoid unaligned memory writes
  [3/3]: index-pack, unpack-objects: use skip_prefix to avoid magic number
 builtin/index-pack.c     | 18 +++++-------------
 builtin/unpack-objects.c | 18 +++++-------------
 packfile.c               | 22 ++++++++++++++++++++++
 packfile.h               |  6 ++++++
 4 files changed, 38 insertions(+), 26 deletions(-)
-Peff
Previous: Jeff KingNext: Jeff King
Message 3 of 22 in “[BUG] git crashes with a SIGBUS on sparc64 during pull”
  1. KoakumaJan 17, 2025
  2. Jeff KingJan 17, 2025
  3. Jeff KingJan 17, 2025
  4. 1/3 packfile: factor out --pack_header argument parsingJeff King, Jan 17, 2025
  5. Junio C HamanoJan 17, 2025
  6. Jeff KingJan 18, 2025
  7. KoakumaJan 18, 2025
  8. 2/3 parse_pack_header_option(): avoid unaligned memory writesJeff King, Jan 17, 2025
  9. Junio C HamanoJan 18, 2025
  10. Jeff KingJan 18, 2025
  11. 3/3 index-pack, unpack-objects: use skip_prefix to avoid magic numberJeff King, Jan 17, 2025
  12. KoakumaJan 17, 2025
  13. Jeff KingJan 18, 2025
  14. KoakumaJan 18, 2025
  15. 0/5 git crashes with a SIGBUS on sparc64 during pullJeff King, Jan 19, 2025
  16. 1/5 bswap.h: squelch potential sparse -Wcast-truncate warningsJeff King, Jan 19, 2025
  17. 2/5 packfile: factor out --pack_header argument parsingJeff King, Jan 19, 2025
  18. 3/5 parse_pack_header_option(): avoid unaligned memory writesJeff King, Jan 19, 2025
  19. 4/5 index-pack, unpack-objects: use get_be32() for reading pack headerJeff King, Jan 19, 2025
  20. 5/5 index-pack, unpack-objects: use skip_prefix to avoid magic numberJeff King, Jan 19, 2025
  21. KoakumaJan 20, 2025
  22. Junio C HamanoJan 21, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.