ASan/UBSan failure in vm_host_tools unit tests on amd64-generic-asan |
|||
Issue descriptionSubnet-related code/tests are shifting an int by 32, which is undefined behaviour. https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/buildDetails?buildbucketId=8930755155292912032 https://luci-logdog.appspot.com/logs/chromeos/buildbucket/cr-buildbucket.appspot.com/8930755155292912032/+/steps/UnitTest/0/stdout vm_host_tools-0.0.1-r200: /build/amd64-generic/tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/common-mk/platform2_test.py --action=post_test --sysroot=/build/amd64-generic -- vm_host_tools-0.0.1-r200: ERROR: ld.so: object 'libsandbox.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. vm_host_tools-0.0.1-r200: >>> Completed testing chromeos-base/vm_host_tools-0.0.1-r200 vm_host_tools-0.0.1-r200: * Running stacked hooks for post_src_test vm_host_tools-0.0.1-r200: * asan_check ... vm_host_tools-0.0.1-r200: * ERROR: chromeos-base/vm_host_tools-0.0.1-r200::chromiumos failed (test phase): vm_host_tools-0.0.1-r200: * asan error not caught vm_host_tools-0.0.1-r200: * vm_host_tools-0.0.1-r200: * Call stack: vm_host_tools-0.0.1-r200: * ebuild.sh, line 133: Called post_src_test vm_host_tools-0.0.1-r200: * environment, line 3862: Called cros_stack_hooks 'post_src_test' vm_host_tools-0.0.1-r200: * profile.bashrc, line 86: Called cros_post_src_test_asan_check vm_host_tools-0.0.1-r200: * profile.bashrc, line 209: Called die vm_host_tools-0.0.1-r200: * The specific snippet of code: vm_host_tools-0.0.1-r200: * rmdir "${T}/asan_logs" 2>/dev/null || die "asan error not caught" vm_host_tools-0.0.1-r200: * vm_host_tools-0.0.1-r200: * If you need support, post the output of `emerge --info '=chromeos-base/vm_host_tools-0.0.1-r200::chromiumos'`, vm_host_tools-0.0.1-r200: * the complete build log and the output of `emerge -pqv '=chromeos-base/vm_host_tools-0.0.1-r200::chromiumos'`. vm_host_tools-0.0.1-r200: vm_host_tools-0.0.1-r200: * ASAN error detected: vm_host_tools-0.0.1-r200: * ../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet_test.cc:76:3: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int' vm_host_tools-0.0.1-r200: * #0 0x56333b22aa98 in vm_tools::concierge::PrefixTest_Netmask_Test::TestBody() /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet_test.cc:76:3 vm_host_tools-0.0.1-r200: * #1 0x7f092ca52e83 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2402:10 vm_host_tools-0.0.1-r200: * #2 0x7f092ca52e83 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2438:0 vm_host_tools-0.0.1-r200: * #3 0x7f092ca39520 in testing::Test::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2474:5 vm_host_tools-0.0.1-r200: * #4 0x7f092ca3a47f in testing::TestInfo::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2656:11 vm_host_tools-0.0.1-r200: * #5 0x7f092ca3ab06 in testing::TestCase::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2774:28 vm_host_tools-0.0.1-r200: * #6 0x7f092ca436c6 in testing::internal::UnitTestImpl::RunAllTests() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:4649:43 vm_host_tools-0.0.1-r200: * #7 0x7f092ca539a3 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2402:10 vm_host_tools-0.0.1-r200: * #8 0x7f092ca539a3 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2438:0 vm_host_tools-0.0.1-r200: * #9 0x7f092ca4328c in testing::UnitTest::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:4257:10 vm_host_tools-0.0.1-r200: * #10 0x56333b2cc375 in RUN_ALL_TESTS() /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../usr/include/gtest/gtest.h:2233:46 vm_host_tools-0.0.1-r200: * #11 0x56333b2cc375 in main /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/common-mk/testrunner.cc:16:0 vm_host_tools-0.0.1-r200: * #12 0x7f092a54d735 in __libc_start_main /var/tmp/portage/cross-x86_64-cros-linux-gnu/glibc-2.23-r21/work/glibc-2.23/csu/../csu/libc-start.c:289:0 vm_host_tools-0.0.1-r200: * #13 0x56333b133708 in _start ??:0:0 vm_host_tools-0.0.1-r200: * vm_host_tools-0.0.1-r200: * SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet_test.cc:76:3 in vm_host_tools-0.0.1-r200: * ../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet.cc:42:10: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int' vm_host_tools-0.0.1-r200: * #0 0x56333b2aee17 in vm_tools::concierge::Subnet::Netmask() const /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet.cc:42:10 vm_host_tools-0.0.1-r200: * #1 0x56333b22a7c2 in vm_tools::concierge::PrefixTest_Netmask_Test::TestBody() /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet_test.cc:76:3 vm_host_tools-0.0.1-r200: * #2 0x7f092ca52e83 in void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2402:10 vm_host_tools-0.0.1-r200: * #3 0x7f092ca52e83 in void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2438:0 vm_host_tools-0.0.1-r200: * #4 0x7f092ca39520 in testing::Test::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2474:5 vm_host_tools-0.0.1-r200: * #5 0x7f092ca3a47f in testing::TestInfo::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2656:11 vm_host_tools-0.0.1-r200: * #6 0x7f092ca3ab06 in testing::TestCase::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2774:28 vm_host_tools-0.0.1-r200: * #7 0x7f092ca436c6 in testing::internal::UnitTestImpl::RunAllTests() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:4649:43 vm_host_tools-0.0.1-r200: * #8 0x7f092ca539a3 in bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2402:10 vm_host_tools-0.0.1-r200: * #9 0x7f092ca539a3 in bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:2438:0 vm_host_tools-0.0.1-r200: * #10 0x7f092ca4328c in testing::UnitTest::Run() /build/amd64-generic/tmp/portage/dev-cpp/gtest-1.8.0-r1/work/googletest-release-1.8.0/googletest-abi_x86_64.amd64/./src/gtest.cc:4257:10 vm_host_tools-0.0.1-r200: * #11 0x56333b2cc375 in RUN_ALL_TESTS() /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../usr/include/gtest/gtest.h:2233:46 vm_host_tools-0.0.1-r200: * #12 0x56333b2cc375 in main /build/amd64-generic/var/cache/portage/chromeos-base/vm_host_tools/out/Default/../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/common-mk/testrunner.cc:16:0 vm_host_tools-0.0.1-r200: * #13 0x7f092a54d735 in __libc_start_main /var/tmp/portage/cross-x86_64-cros-linux-gnu/glibc-2.23-r21/work/glibc-2.23/csu/../csu/libc-start.c:289:0 vm_host_tools-0.0.1-r200: * #14 0x56333b133708 in _start ??:0:0 vm_host_tools-0.0.1-r200: * vm_host_tools-0.0.1-r200: * SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../../../../../../../tmp/portage/chromeos-base/vm_host_tools-0.0.1-r200/work/vm_host_tools-0.0.1/vm_tools/concierge/subnet.cc:42:10 in
,
Nov 7
Issue 902594 has been merged into this issue.
,
Nov 7
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/7e4aa42ea2601ea42417c2efe75388c43b001ef2 commit 7e4aa42ea2601ea42417c2efe75388c43b001ef2 Author: Chirantan Ekbote <chirantan@chromium.org> Date: Wed Nov 07 14:34:33 2018 vm_tools: concierge: Fix ASAN build failure Shifting a 32-bit value by 32 is undefined behavior. Fix it by marking the constant as a 64-bit value before shifting and then masking off the top 32 bits. BUG= chromium:901704 TEST=run the test Change-Id: I65885789e694e0c0b20c4132ba33bd599b21501f Signed-off-by: Chirantan Ekbote <chirantan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1318277 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Reviewed-by: Mike Frysinger <vapier@chromium.org> [modify] https://crrev.com/7e4aa42ea2601ea42417c2efe75388c43b001ef2/vm_tools/concierge/subnet_test.cc [modify] https://crrev.com/7e4aa42ea2601ea42417c2efe75388c43b001ef2/vm_tools/concierge/subnet.cc
,
Nov 7
|
|||
►
Sign in to add a comment |
|||
Comment 1 by vapier@chromium.org
, Nov 5