[Bug 2058094] [NEW] scotch ftbfs when using default stack protector flags
Steve Langasek
2058094 at bugs.launchpad.net
Sat Mar 16 06:10:41 UTC 2024
Public bug reported:
scotch ftbfs in Ubuntu (but not in Debian) with a buffer overflow error
in the testsuite.
./test_scotch_graph_map data/m4x4_b100000.grf
*** buffer overflow detected ***: terminated
I have examined the source and run the code under gdb and cannot confirm
that there is a buffer overflow here.
The code triggering the assertion is in
src/libscotch/bgraph_bipart_gg.c:
flagtax = (byte *) (vexxtax + grafptr->s.baseval) - grafptr->s.baseval; /* Re-
use extended vertex array for flag array */
memSet (flagtax + grafptr->s.baseval, ~0, grafptr->s.vertnbr * sizeof (byte));
There's a lot in this code that's ugly (a lot of deliberate setting of
pointers to addresses that are outside of allocated space), but as best
I'm able to tell this is not an out-of-bounds write. However, with the
terrible pointer manipulation it's quite likely that this has confused
the compiler.
The only way I've found to work around this (without taking a scalpel to
the scotch code) is by downgrading to -D_FORTIFY_SOURCE=2.
This is less than ideal, so I'm opening a bug on scotch+gcc to track it.
** Affects: gcc-13 (Ubuntu)
Importance: Undecided
Status: New
** Affects: scotch (Ubuntu)
Importance: Undecided
Status: New
** Also affects: gcc-13 (Ubuntu)
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-13 in Ubuntu.
https://bugs.launchpad.net/bugs/2058094
Title:
scotch ftbfs when using default stack protector flags
Status in gcc-13 package in Ubuntu:
New
Status in scotch package in Ubuntu:
New
Bug description:
scotch ftbfs in Ubuntu (but not in Debian) with a buffer overflow
error in the testsuite.
./test_scotch_graph_map data/m4x4_b100000.grf
*** buffer overflow detected ***: terminated
I have examined the source and run the code under gdb and cannot
confirm that there is a buffer overflow here.
The code triggering the assertion is in
src/libscotch/bgraph_bipart_gg.c:
flagtax = (byte *) (vexxtax + grafptr->s.baseval) - grafptr->s.baseval; /* Re-
use extended vertex array for flag array */
memSet (flagtax + grafptr->s.baseval, ~0, grafptr->s.vertnbr * sizeof (byte));
There's a lot in this code that's ugly (a lot of deliberate setting of
pointers to addresses that are outside of allocated space), but as
best I'm able to tell this is not an out-of-bounds write. However,
with the terrible pointer manipulation it's quite likely that this has
confused the compiler.
The only way I've found to work around this (without taking a scalpel
to the scotch code) is by downgrading to -D_FORTIFY_SOURCE=2.
This is less than ideal, so I'm opening a bug on scotch+gcc to track
it.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gcc-13/+bug/2058094/+subscriptions
More information about the foundations-bugs
mailing list