Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 26 May 2021 10:48:32 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 256166] cad/brlcad: Fix build with clang 12
Message-ID:  <bug-256166-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D256166

            Bug ID: 256166
           Summary: cad/brlcad: Fix build with clang 12
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: dim@FreeBSD.org
                CC: erik@brlcad.org
             Flags: maintainer-feedback?(erik@brlcad.org)
                CC: erik@brlcad.org

Created attachment 225273
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D225273&action=
=3Dedit
Fix null pointer accesses in brlcad's EntList

During an exp-run for llvm 12 (see bug 255570), it turned out that cad/brlc=
ad
does not build with clang 12.0.0 [1]:

[ 99% 4379/4403] cd /wrkdirs/usr/ports/cad/brlcad/work/brlcad-7.30.2/db/nis=
t &&
/wrkdirs/usr/ports/cad/brlcad/work/brlcad-7.30.2/bin/step-g -O
/wrkdirs/usr/ports/cad/brlcad/work/brlcad-7.30.2/share/db/nist/NIST_MBE_PMI=
_11.g
/wrkdirs/usr/ports/cad/brlcad/work/brlcad-7.30.2/db/nist/NIST_MBE_PMI_11.st=
p >
/wrkdirs/usr/ports/cad/brlcad/work/brlcad-7.30.2/db/nist/NIST_MBE_PMI_11.log
2>&1
FAILED: share/db/nist/NIST_MBE_PMI_11.g=20

What happens is that the step-g intermediate program segfaults, because it
attempts to access a null pointer. Valgrind shows:

Reading Data from
/wrkdirs/share/dim/ports/cad/brlcad/work/brlcad-7.30.2/db/nist/NIST_MBE_PMI=
_11.stp...

HEADER read:
=3D=3D24919=3D=3D Invalid read of size 4
=3D=3D24919=3D=3D    at 0x1337BA10: EntList::firstNot(JoinType) (entlist.cc=
:39)
=3D=3D24919=3D=3D    by 0x1337C93E: nextNot (complexSupport.h:185)
=3D=3D24919=3D=3D    by 0x1337C93E: AndList::matchNonORs(EntNode*) (non-ors=
.cc:135)
=3D=3D24919=3D=3D    by 0x1337B77C: ComplexList::matches(EntNode*) (complex=
list.cc:176)
=3D=3D24919=3D=3D    by 0x1337B36A: ComplexCollect::supports(EntNode*) const
(collect.cc:140)
=3D=3D24919=3D=3D    by 0x1335FA5A: STEPcomplex::Initialize(char const**, c=
har const*)
(STEPcomplex.cc:126)
=3D=3D24919=3D=3D    by 0x1335F774: STEPcomplex::STEPcomplex(Registry*,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const**, int, char const*) (STEPcomplex.cc:33)
=3D=3D24919=3D=3D    by 0x1331842E:
STEPfile::CreateSubSuperInstance(std::__1::basic_istream<char,
std::__1::char_traits<char> >&, int, ErrorDescriptor&) (STEPfile.cc:1048)
=3D=3D24919=3D=3D    by 0x13315E15:
STEPfile::CreateInstance(std::__1::basic_istream<char,
std::__1::char_traits<char> >&, std::__1::basic_ostream<char,
std::__1::char_traits<char> >&) (STEPfile.cc:833)
=3D=3D24919=3D=3D    by 0x133158B1: STEPfile::ReadData1(std::__1::basic_ist=
ream<char,
std::__1::char_traits<char> >&) (STEPfile.cc:502)
=3D=3D24919=3D=3D    by 0x13319EA8: STEPfile::AppendFile(std::__1::basic_is=
tream<char,
std::__1::char_traits<char> >*, bool) (STEPfile.cc:1674)
=3D=3D24919=3D=3D    by 0x1331C984:
STEPfile::ReadExchangeFile(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >, bool)
(STEPfile.inline.cc:119)
=3D=3D24919=3D=3D    by 0x3AFDCE: STEPWrapper::load(std::__1::basic_string<=
char,
std::__1::char_traits<char>, std::__1::allocator<char> >&)
(STEPWrapper.cpp:1300)
=3D=3D24919=3D=3D  Address 0x8 is not stack'd, malloc'd or (recently) free'd
=3D=3D24919=3D=3D
=3D=3D24919=3D=3D
=3D=3D24919=3D=3D Process terminating with default action of signal 11 (SIG=
SEGV):
dumping core
=3D=3D24919=3D=3D  Access not within mapped region at address 0x8
=3D=3D24919=3D=3D    at 0x1337BA10: EntList::firstNot(JoinType) (entlist.cc=
:39)
=3D=3D24919=3D=3D    by 0x1337C93E: nextNot (complexSupport.h:185)
=3D=3D24919=3D=3D    by 0x1337C93E: AndList::matchNonORs(EntNode*) (non-ors=
.cc:135)
=3D=3D24919=3D=3D    by 0x1337B77C: ComplexList::matches(EntNode*) (complex=
list.cc:176)
=3D=3D24919=3D=3D    by 0x1337B36A: ComplexCollect::supports(EntNode*) const
(collect.cc:140)
=3D=3D24919=3D=3D    by 0x1335FA5A: STEPcomplex::Initialize(char const**, c=
har const*)
(STEPcomplex.cc:126)
=3D=3D24919=3D=3D    by 0x1335F774: STEPcomplex::STEPcomplex(Registry*,
std::__1::basic_string<char, std::__1::char_traits<char>,
std::__1::allocator<char> > const**, int, char const*) (STEPcomplex.cc:33)
=3D=3D24919=3D=3D    by 0x1331842E:
STEPfile::CreateSubSuperInstance(std::__1::basic_istream<char,
std::__1::char_traits<char> >&, int, ErrorDescriptor&) (STEPfile.cc:1048)
=3D=3D24919=3D=3D    by 0x13315E15:
STEPfile::CreateInstance(std::__1::basic_istream<char,
std::__1::char_traits<char> >&, std::__1::basic_ostream<char,
std::__1::char_traits<char> >&) (STEPfile.cc:833)
=3D=3D24919=3D=3D    by 0x133158B1: STEPfile::ReadData1(std::__1::basic_ist=
ream<char,
std::__1::char_traits<char> >&) (STEPfile.cc:502)
=3D=3D24919=3D=3D    by 0x13319EA8: STEPfile::AppendFile(std::__1::basic_is=
tream<char,
std::__1::char_traits<char> >*, bool) (STEPfile.cc:1674)
=3D=3D24919=3D=3D    by 0x1331C984:
STEPfile::ReadExchangeFile(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >, bool)
(STEPfile.inline.cc:119)
=3D=3D24919=3D=3D    by 0x3AFDCE: STEPWrapper::load(std::__1::basic_string<=
char,
std::__1::char_traits<char>, std::__1::allocator<char> >&)
(STEPWrapper.cpp:1300)
=3D=3D24919=3D=3D  If you believe this happened as a result of a stack
=3D=3D24919=3D=3D  overflow in your program's main thread (unlikely but
=3D=3D24919=3D=3D  possible), you can try to increase the size of the
=3D=3D24919=3D=3D  main thread stack using the --main-stacksize=3D flag.
=3D=3D24919=3D=3D  The main thread stack size used in this run was 16777216.

To fix this, add null pointer checks to EntList::firstNot() and various oth=
er
EntList functions.

[1]
http://package22.nyi.freebsd.org/data/mainamd64PR255570-default/2021-05-08_=
16h02m24s/logs/brlcad-7.30.2.log

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-256166-7788>