Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
3.8.2
-
gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
Description
when enable Werror=return-type check in gcc, the following error occurs:
zookeeper/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc: In static member function ‘static std::vector<ZooKeeperQuorumServer*> ZooKeeperQuorumServer::getCluster(uint32_t, ZooKeeperQuorumServer::tConfigPairs, std::__cxx11::string)’:
zookeeper/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc:230:1: error: control reaches end of non-void function [-Werror=return-type]
}
when enable asan option on cppunit test, the following error occurs:
1: Zookeeper_reconfig::testMigrationCycle=================================================================
1: ==415554==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d00000cf6f at pc 0x560905cbbd12 bp 0x7ffe32d10af0 sp 0x7ffe32d10ae8
1: READ of size 1 at 0x60d00000cf6f thread T0
1: #0 0x560905cbbd11 in Zookeeper_reconfig::testMigrationCycle() zookeeper/zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc:502
1: #1 0x560905cc21a1 in CppUnit::TestCaller<Zookeeper_reconfig>::runTest() /usr/include/cppunit/TestCaller.h:166
1: #2 0x7fb8248815b1 in CppUnit::TestCaseMethodFunctor::operator()() const (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x235b1)
1: #3 0x7fb824877eb2 in CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x19eb2)
1: #4 0x7fb82487e7e1 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x207e1)
1: #5 0x7fb824886e4f in CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x28e4f)
1: #6 0x7fb82488138f in CppUnit::TestCase::run(CppUnit::TestResult*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x2338f)
1: #7 0x7fb8248818e2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x238e2)
1: #8 0x7fb8248817fd in CppUnit::TestComposite::run(CppUnit::TestResult*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x237fd)
1: #9 0x7fb8248818e2 in CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x238e2)
1: #10 0x7fb8248817fd in CppUnit::TestComposite::run(CppUnit::TestResult*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x237fd)
1: #11 0x7fb824886d71 in CppUnit::TestResult::runTest(CppUnit::Test*) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x28d71)
1: #12 0x7fb82488947d in CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x2b47d)
1: #13 0x560905c918a5 in main zookeeper/zookeeper-client/zookeeper-client-c/tests/TestDriver.cc:152
1: #14 0x7fb8230b42e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
1: #15 0x560905c914c9 in _start (build/zookeeper/zookeeper-client/zookeeper-client-c/zktest+0x154c9)
1:
1: 0x60d00000cf6f is located 1 bytes to the left of 138-byte region [0x60d00000cf70,0x60d00000cffa)
1: allocated by thread T0 here:
1: #0 0x7fb824b5fbf0 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2bf0)
1: #1 0x7fb823a5f1f6 (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1111f6)
1: #2 0x7fb823a5bcb9 in std::ostream& std::ostream::_M_insert<unsigned long>(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x10dcb9)
1: #3 0x7ffe32d1090f (<unknown module>)
1:
1: SUMMARY: AddressSanitizer: heap-buffer-overflow zookeeper/zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc:502 in Zookeeper_reconfig::testMigrationCycle()
1: Shadow bytes around the buggy address:
1: 0x0c1a7fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff99d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: =>0x0c1a7fff99e0: fa fa fa fa fa fa fa fa fa fa fa fa fa[fa]00 00
1: 0x0c1a7fff99f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
1: 0x0c1a7fff9a00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff9a10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff9a20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: 0x0c1a7fff9a30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
1: Shadow byte legend (one shadow byte represents 8 application bytes):
1: Addressable: 00
1: Partially addressable: 01 02 03 04 05 06 07
1: Heap left redzone: fa
1: Heap right redzone: fb
1: Freed heap region: fd
1: Stack left redzone: f1
1: Stack mid redzone: f2
1: Stack right redzone: f3
1: Stack partial redzone: f4
1: Stack after return: f5
1: Stack use after scope: f8
1: Global redzone: f9
1: Global init order: f6
1: Poisoned by user: f7
1: Container overflow: fc
1: Array cookie: ac
1: Intra object redzone: bb
1: ASan internal: fe
1: Left alloca redzone: ca
1: Right alloca redzone: cb
1: ==415554==ABORTING
1/1 Test #1: zktest_runner ....................***Failed 1.42 sec
Attachments
Issue Links
- links to