Hi, I'm running diffutils-3.11, downloaded from ftp.gnu.org and built with ./configure && make (no options given).
I'm seeing the problem that diff -y is crashing with various malloc-related errors. Here is an example. First I create two files a and b like so: % seq 1 100 > a % seq 1 100 | grep -v 50 > b Then I run diff -y a b, which crashes with an error in free(): % diff -y a b free(): corrupted unsorted chunks zsh: IOT instruction src/diff -y ~/a ~/b I haven't looked into the source to find out the problem, but I did compile a debug build and run it under Valgrind. It detected some memory corruption - here is the report: ==9602== Memcheck, a memory error detector ==9602== Copyright (C) 2002-2024, and GNU GPL'd, by Julian Seward et al. ==9602== Using Valgrind-3.24.0 and LibVEX; rerun with -h for copyright info ==9602== Command: src/diff -y /home/nick/a /home/nick/b ==9602== ==9602== Invalid write of size 8 ==9602== at 0x40EC8A: find_and_hash_each_line (io.c:1017) ==9602== by 0x40FBAA: read_files (io.c:1366) ==9602== by 0x40596C: diff_2_files (analyze.c:463) ==9602== by 0x409B1F: compare_prepped_files (diff.c:1371) ==9602== by 0x40ADBF: compare_files (diff.c:1633) ==9602== by 0x408834: main (diff.c:881) ==9602== Address 0x4b12f80 is 0 bytes after a block of size 656 alloc'd ==9602== at 0x4850C7C: realloc (vg_replace_malloc.c:1801) ==9602== by 0x41A8A6: rpl_realloc (stdlib.h:2066) ==9602== by 0x41CE27: xrealloc (xmalloc.c:66) ==9602== by 0x41D196: xpalloc (xmalloc.c:271) ==9602== by 0x40EC4A: find_and_hash_each_line (io.c:1013) ==9602== by 0x40FBAA: read_files (io.c:1366) ==9602== by 0x40596C: diff_2_files (analyze.c:463) ==9602== by 0x409B1F: compare_prepped_files (diff.c:1371) ==9602== by 0x40ADBF: compare_files (diff.c:1633) ==9602== by 0x408834: main (diff.c:881) ==9602== --9602-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) - exiting --9602-- si_code=1; Faulting address: 0x9622BA0; sp: 0x1002cf6e20 valgrind: the 'impossible' happened: Killed by fatal signal host stacktrace: ==9602== at 0x5804AE1F: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux) ==9602== by 0x58004E0C: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux) ==9602== by 0x58005203: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux) ==9602== by 0x58097E37: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux) ==9602== by 0x580E1E1A: ??? (in /usr/libexec/valgrind/memcheck-amd64-linux) sched status: running_tid=1 Thread 1: status = VgTs_Runnable (lwpid 9602) ==9602== at 0x4850A5F: calloc (vg_replace_malloc.c:1675) ==9602== by 0x4160B0: icalloc (ialloc.h:91) ==9602== by 0x41D239: xicalloc (xmalloc.c:304) ==9602== by 0x41D1E7: xizalloc (xmalloc.c:289) ==9602== by 0x405E39: diff_2_files (analyze.c:529) ==9602== by 0x409B1F: compare_prepped_files (diff.c:1371) ==9602== by 0x40ADBF: compare_files (diff.c:1633) ==9602== by 0x408834: main (diff.c:881) client stack range: [0x1FFEFFD000 0x1FFF000FFF] client SP: 0x1FFEFFEDA0 valgrind stack range: [0x1002BF7000 0x1002CF6FFF] top usage: 7272 of 1048576 Nick