bug-groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #64421] [mom] the word "black" spuriously appears in output


From: G. Branden Robinson
Subject: [bug #64421] [mom] the word "black" spuriously appears in output
Date: Sat, 5 Aug 2023 11:11:44 -0400 (EDT)

Update of bug #64421 (project groff):

                Category:               Macro mom => Core                   
                Severity:              3 - Normal => 4 - Important          
                  Status:          Unreproducible => In Progress            
             Assigned to:                    PTPi => gbranden               

    _______________________________________________________

Follow-up Comment #20:

That's some good sleuthing, Deri.

> So I suspect the different memory layout in the arch linux version is
exposing a wayward pointer memory corruption in troff, since I can't see any
patches in the git arch use which would cause this result.

I think you're right.  I had though the issue was the position-independent
executable ("pie") property of the object, but my builds works fine and they
have that as well.

I unfortunately cannot run Arch's "bad troff" at all.  There is an ABI change.
 But that further reinforces your conjecture.


$ file troff.*
troff.bad:  ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=3edc265872c007e94d3ab3ac40526e894fe2cb9d, for GNU/Linux 4.4.0,
stripped
troff.good: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically
linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=c470f808a9aa475150d7411d2de7be7c48fc375d, for GNU/Linux 3.2.0,
stripped
troff.mine: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV),
dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2,
BuildID[sha1]=2cc3b74a8768f3ceacad57abed700a3bf6a4fcfa, for GNU/Linux 3.2.0,
with debug_info, not stripped
$ ./troff.bad
./troff.bad: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.30'
not found (required by ./troff.bad)
./troff.bad: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found
(required by ./troff.bad)


The really crappy thing here is that this buffer read is not causing a crash,
just bad behavior.

But it's starting to smell to me a lot like bug #62813, where a really similar
problem occurred with a static buffer used for writing out diagnostic
messages.  No out-of-bounds read or write ever occurred, just negligence to
properly clear a buffer that was being re-used.

This has simply *got* to be a formatter problem.  Updating item group and
adopting item to chew on it for a bit.  Can't promise I'll find the problem. 
Kicking up to important because improper handling of memory is offensive to
me; also I can't see how this sort of thing can be worked around reliably,
just by stochastic measures.


    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/bugs/?64421>

_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]