GNU bug report logs -
#77840
Testing diffutils 3.12 on PPC Mac OS X 10.4.11, Tiger, produces so many failures
Previous Next
Full log
Message #77 received at 77840 <at> debbugs.gnu.org (full text, mbox):
> Am 13.06.2025 um 00:14 schrieb Paul Eggert <eggert <at> cs.ucla.edu>:
>
> On 2025-06-12 03:29, Peter Dyballa wrote:
>> (gdb) p base
>> $2 = 0x0
>
> That's obviously wrong; 'base' should not be a null pointer. Can you track down why it is a null pointer?
I think I am close to the cause (two sessions):
Breakpoint 1 at 0x7e40: file context.c, line 246.
Breakpoint 2 at 0x7ff4: file context.c, line 284.
Breakpoint 3 at 0x84c0: file context.c, line 379.
Breakpoint 4 at 0x8574: file context.c, line 395.
Breakpoint 5 at 0x8664: file context.c, line 414.
Reading symbols for shared libraries ...................+ done
--- Portfile-graphite2-312 2025-06-09 15:48:08.000000000 +0200
+++ Portfile-graphite2 2025-06-09 15:48:08.000000000 +0200
@@ -27,14 +18,23 @@
Breakpoint 3, pr_unidiff_hunk (hunk=0x4014d0) at context.c:379 => print_1_line (nullptr, line);
step -> print_1_line (line_flag=0x0, line=0x40137c) at util.c:989
step -> print_1_line_nl (line_flag=0x0, line=0x40137c, skip_nl=false) at util.c:1001
(gdb) p line
$1 = (const char * const *) 0x40137c
(gdb) p *line
$2 = 0x0
(gdb) p line[0]
$3 = 0x0
(gdb) p line[1]
$4 = 0x18015ef "distname", ' ' <repeats 12 times>, "${name}-${version}\nextract.suffix .tgz\n\ncompiler.cxx_standard \\\n", ' ' <repeats 20 times>, "2011\n\nset py_ver 3.12\nset py_ver_nodot [string map {. {}} ${py_ver}]\n\ntest.run "...
(gdb) p line[2]
$5 = 0x1801616 "extract.suffix .tgz\n\ncompiler.cxx_standard \\\n", ' ' <repeats 20 times>, "2011\n\nset py_ver 3.12\nset py_ver_nodot [string map {. {}} ${py_ver}]\n\ntest.run", ' ' <repeats 12 times>, "yes\n#test.env", ' ' <repeats 12 times>, "ARG"...
----------------------------------------------------------------------------------------
--- Portfile-graphite2-312 2025-06-09 15:48:08.000000000 +0200
+++ Portfile-graphite2 2025-06-09 15:48:08.000000000 +0200
@@ -27,14 +18,23 @@
Breakpoint 1, pr_unidiff_hunk (hunk=0x4014d0) at context.c:369
(gdb) p last0
$1 = 9
(gdb) p last1
$2 = 9
(gdb) p i
$3 = -4
(gdb) p j
$4 = -13
(gdb) n
(gdb) p next->line0
$5 = -1
Breakpoint 4, pr_unidiff_hunk (hunk=0x4014d0) at context.c:379
(gdb) p *out
$8 = {
_p = 0xc2001 "@ -27,14 +18,23 @@\ne2\t2025-06-09 15:48:08.000000000 +0200\n200\n",
_r = 0,
_w = -1,
_flags = 2185,
_file = 1,
_bf = {
_base = 0xc2000 " @ -27,14 +18,23 @@\ne2\t2025-06-09 15:48:08.000000000 +0200\n200\n",
_size = 131072
},
_lbfsize = -131072,
_cookie = 0xa0001bec,
_close = 0x90015978 <__sclose>,
_read = 0x9001ad80 <__sread>,
_seek = 0x9001a970 <__sseek>,
_write = 0x90015968 <__swrite>,
_ub = {
_base = 0x0,
_size = 0
},
_extra = 0xa0001d58,
_ur = 0,
_ubuf = "\000\000",
_nbuf = "",
_lb = {
_base = 0x0,
_size = 0
},
_blksize = 131072,
_offset = 0
}
A while loop starts on line #369, and then gdb steps through all lines, reaching
395 print_1_line_nl (nullptr, line, true);
This "nullptr" is then passed forward to output_1_line() with base=0x0, to which fwrite() would write.
Wouldn't it make more sense to use "out" instead of "nullptr"?
Tomorrow I'll check what my more up-to-date Macs are doing.
--
Greetings
Pete
To most people solutions mean finding the answers. But to chemists solutions
are things that are still all mixed up.
This bug report was last modified 92 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.