Status: Accepted
Owner: [email protected]
CC: [email protected],  [email protected]
Labels: Type-Bug Priority-Medium

New issue 3825 by [email protected]: invalid stack access from SafeStackFrameIterator
https://code.google.com/p/v8/issues/detail?id=3825

From: http://build.chromium.org/p/client.v8/builders/V8%20Mac64%20ASAN/builds/72/steps/Check/logs/LogAccessorCallbacks

Test: cctest/test-log/LogAccessorCallbacks (flaky in a repeated run)
Flags:
Command: xcodebuild/Release/cctest --random-seed=645993412 test-log/LogAccessorCallbacks --nohard-abort --nodead-code-elimination --nofold-constants --testing_serialization_file=out/.serdes/serdes_LogAccessorCallbacks --invoke-weak-callbacks

Run #1
Exit code: 1
Result: FAIL
Expected outcomes: PASS

Stderr:
=================================================================
==91912==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7fff5fbfdcf8 at pc 0x000100c86e0e bp 0x7fff5fbfb8b0 sp 0x7fff5fbfb8a8
READ of size 8 at 0x7fff5fbfdcf8 thread T0
#0 0x100c86e0d in v8::internal::SafeStackFrameIterator::IsValidCaller(v8::internal::StackFrame*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100c86e0d) #1 0x100c85e52 in v8::internal::SafeStackFrameIterator::Advance() (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100c85e52) #2 0x100c852f9 in v8::internal::SafeStackFrameIterator::SafeStackFrameIterator(v8::internal::Isolate*, unsigned char*, unsigned char*, unsigned char*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100c852f9) #3 0x1014d9920 in v8::internal::TickSample::Init(v8::internal::Isolate*, v8::RegisterState const&, v8::internal::TickSample::RecordCEntryFrame) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1014d9920) #4 0x1014d94b7 in v8::internal::Sampler::SampleStack(v8::RegisterState const&) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1014d94b7) #5 0x1014d907e in v8::internal::SignalHandler::HandleProfilerSignal(int, __siginfo*, void*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1014d907e) #6 0x7fff98f5d5a9 in _sigtramp (/usr/lib/system/libsystem_platform.dylib+0x35a9) #7 0x1039cd7ec in v8::internal::blob_data (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1039cd7ec) #8 0x1008e0ed8 in v8::internal::InitializeDescriptorDispatchedCall(v8::internal::CodeStub*, void**) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1008e0ed8) #9 0x1008e0147 in v8::internal::CodeStub::Dispatch(v8::internal::Isolate*, unsigned int, void**, void (*)(v8::internal::CodeStub*, void**)) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1008e0147) #10 0x100b9f9ba in v8::internal::Deoptimizer::DoComputeCompiledStubFrame(v8::internal::TranslationIterator*, int) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100b9f9ba) #11 0x100b98693 in v8::internal::Deoptimizer::DoComputeOutputFrames() (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100b98693)
    #12 0x23b97790642a  (<unknown module>)
    #13 0x611000008aff  (<unknown module>)
    #14 0x23b977b614c4  (<unknown module>)
    #15 0x23b977b377bf  (<unknown module>)
    #16 0x23b977b15ad0  (<unknown module>)
#17 0x100bfb0c1 in v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100bfb0c1) #18 0x10089c01f in v8::internal::Genesis::CompileScriptCached(v8::internal::Isolate*, v8::internal::Vector<char const>, v8::internal::Handle<v8::internal::String>, v8::internal::SourceCodeCache*, v8::Extension*, v8::internal::Handle<v8::internal::Context>, bool) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x10089c01f) #19 0x10089b915 in v8::internal::Genesis::CompileNative(v8::internal::Isolate*, v8::internal::Vector<char const>, v8::internal::Handle<v8::internal::String>) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x10089b915) #20 0x1008c0651 in v8::internal::Genesis::InstallExperimentalNatives() (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1008c0651) #21 0x1008c75d7 in v8::internal::Genesis::Genesis(v8::internal::Isolate*, v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Handle<v8::ObjectTemplate>, v8::ExtensionConfiguration*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1008c75d7) #22 0x100880e09 in v8::internal::Bootstrapper::CreateEnvironment(v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Handle<v8::ObjectTemplate>, v8::ExtensionConfiguration*) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100880e09) #23 0x1007c5524 in v8::Context::New(v8::Isolate*, v8::ExtensionConfiguration*, v8::Handle<v8::ObjectTemplate>, v8::Handle<v8::Value>) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1007c5524) #24 0x10060cc46 in TestLogAccessorCallbacks() (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x10060cc46) #25 0x10033c099 in CcTest::Run() (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x10033c099) #26 0x10033c877 in main (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x10033c877) #27 0x100000d63 in start (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x100000d63) #28 0x7 (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x7)

Address 0x7fff5fbfdcf8 is located in stack of thread T0 at offset 3544 in frame #0 0x1008de0ef in v8::internal::CodeStub::Dispatch(v8::internal::Isolate*, unsigned int, void**, void (*)(v8::internal::CodeStub*, void**)) (/Volumes/data/b/build/slave/mac64-asan/build/v8/xcodebuild/Release/cctest+0x1008de0ef)

  This frame has 70 object(s):
    [32, 56) 'stub'
    [96, 120) 'stub3'
    [160, 184) 'stub6'
    [224, 248) 'stub9'
    [288, 312) 'stub12'
    [352, 376) 'stub15'
    [416, 440) 'stub18'
    [480, 504) 'stub21'
    [544, 568) 'stub24'
    [608, 632) 'stub27'
    [672, 696) 'stub30'
    [736, 768) 'stub33'
    [800, 824) 'stub36'
    [864, 888) 'stub39'
    [928, 952) 'stub42'
    [992, 1016) 'stub45'
    [1056, 1088) 'stub48'
    [1120, 1144) 'stub51'
    [1184, 1208) 'stub54'
    [1248, 1272) 'stub57'
    [1312, 1336) 'stub60'
    [1376, 1400) 'stub63'
    [1440, 1464) 'stub66'
    [1504, 1568) 'stub69'
    [1600, 1624) 'stub72'
    [1664, 1688) 'stub75'
    [1728, 1752) 'stub78'
    [1792, 1816) 'stub81'
    [1856, 1880) 'stub84'
    [1920, 1944) 'stub87'
    [1984, 2008) 'stub90'
    [2048, 2072) 'stub93'
    [2112, 2136) 'stub96'
    [2176, 2200) 'stub99'
    [2240, 2264) 'stub102'
    [2304, 2328) 'stub105'
    [2368, 2392) 'stub108'
    [2432, 2456) 'stub111'
    [2496, 2520) 'stub114'
    [2560, 2584) 'stub117'
    [2624, 2648) 'stub120'
    [2688, 2712) 'stub123'
    [2752, 2776) 'stub126'
    [2816, 2840) 'stub129'
    [2880, 2904) 'stub132'
    [2944, 2968) 'stub135'
    [3008, 3032) 'stub138'
    [3072, 3096) 'stub141'
    [3136, 3160) 'stub144'
    [3200, 3224) 'stub147'
    [3264, 3288) 'stub150'
    [3328, 3352) 'stub153'
    [3392, 3416) 'stub156'
    [3456, 3480) 'stub159'
[3520, 3544) 'stub162' <== Memory access at offset 3544 overflows this variable
    [3584, 3608) 'stub165'
    [3648, 3672) 'stub168'
    [3712, 3736) 'stub171'
    [3776, 3800) 'stub174'
    [3840, 3864) 'stub177'
    [3904, 3928) 'stub180'
    [3968, 3992) 'stub183'
    [4032, 4056) 'stub186'
    [4096, 4120) 'stub189'
    [4160, 4184) 'stub192'
    [4224, 4248) 'stub195'
    [4288, 4312) 'stub198'
    [4352, 4376) 'stub201'
    [4416, 4440) 'stub204'
    [4480, 4504) 'stub207'
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow ??:0 v8::internal::SafeStackFrameIterator::IsValidCaller(v8::internal::StackFrame*)
Shadow bytes around the buggy address:
  0x1fffebf7fb40: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fb50: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fb60: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fb70: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fb80: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
=>0x1fffebf7fb90: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00[f2]
  0x1fffebf7fba0: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fbb0: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fbc0: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fbd0: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
  0x1fffebf7fbe0: f2 f2 f2 f2 00 00 00 f2 f2 f2 f2 f2 00 00 00 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone:       fa
  Heap right redzone:      fb
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack partial redzone:   f4
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==91912==ABORTING

Run #2
Exit code: 0
Result: PASS
Expected outcomes: PASS

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to