Skip to content

Instantly share code, notes, and snippets.

@kapouer
Created May 12, 2016 23:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kapouer/86c82cbeb375b79a7d8fb837e549e227 to your computer and use it in GitHub Desktop.
Save kapouer/86c82cbeb375b79a7d8fb837e549e227 to your computer and use it in GitHub Desktop.
socket.io asan + debug log
2016-05-12_23:43:18.05670 ==18712==ERROR: AddressSanitizer: heap-use-after-free on address 0x60e00003b300 at pc 0x7fac70240e61 bp 0x7fff31f2fe40 sp 0x7fff31f2fe38
2016-05-12_23:43:18.05671 READ of size 8 at 0x60e00003b300 thread T0 (ws-production-0)
2016-05-12_23:43:18.08523 #0 0x7fac70240e60 in uWS::Socket::close(bool, unsigned short, char*, unsigned long) ../src/uWS.cpp:1142
2016-05-12_23:43:18.08527 #1 0x7fac70240b41 in uWS::Socket::close(bool, unsigned short, char*, unsigned long)::{lambda(uv_timer_s*)#3}::operator()(uv_timer_s*) const (/home/eda/src/uWebSockets/nodejs/dist/uws_linux_46.node+0x25b41)
2016-05-12_23:43:18.08528 #2 0x7fac70240b62 in uWS::Socket::close(bool, unsigned short, char*, unsigned long)::{lambda(uv_timer_s*)#3}::_FUN(uv_timer_s*) (/home/eda/src/uWebSockets/nodejs/dist/uws_linux_46.node+0x25b62)
2016-05-12_23:43:18.08529 #3 0x7fac85249617 (/usr/lib/x86_64-linux-gnu/libuv.so.1+0x16617)
2016-05-12_23:43:18.08584 #4 0x7fac8523da99 in uv_run (/usr/lib/x86_64-linux-gnu/libuv.so.1+0xaa99)
2016-05-12_23:43:18.08586 #5 0xaeb7df in node::Start(int, char**) (/usr/bin/nodejs+0xaeb7df)
2016-05-12_23:43:18.08587 #6 0x7fac8146660f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2060f)
2016-05-12_23:43:18.08587 #7 0x6459a8 in _start (/usr/bin/nodejs+0x6459a8)
2016-05-12_23:43:18.08588
2016-05-12_23:43:18.08588 0x60e00003b300 is located 0 bytes inside of 160-byte region [0x60e00003b300,0x60e00003b3a0)
2016-05-12_23:43:18.08592 freed by thread T0 (ws-production-0) here:
2016-05-12_23:43:18.08613 #0 0x7fac8570714a in operator delete(void*) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x9514a)
2016-05-12_23:43:18.08615 #1 0x7fac70240a51 in uWS::Socket::close(bool, unsigned short, char*, unsigned long)::{lambda(uv_handle_s*)#1}::operator()(uv_handle_s*) const (/home/eda/src/uWebSockets/nodejs/dist/uws_linux_46.node+0x25a51)
2016-05-12_23:43:18.08616 #2 0x7fac70240a72 in uWS::Socket::close(bool, unsigned short, char*, unsigned long)::{lambda(uv_handle_s*)#1}::_FUN(uv_handle_s*) (/home/eda/src/uWebSockets/nodejs/dist/uws_linux_46.node+0x25a72)
2016-05-12_23:43:18.08617 #3 0x7fac8523d977 in uv_run (/usr/lib/x86_64-linux-gnu/libuv.so.1+0xa977)
2016-05-12_23:43:18.08647 #4 0x7fff31f2ffcf (<unknown module>)
2016-05-12_23:43:18.08648
2016-05-12_23:43:18.08650 previously allocated by thread T0 (ws-production-0) here:
2016-05-12_23:43:18.08651 #0 0x7fac85706c0a in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.2+0x94c0a)
2016-05-12_23:43:18.08651 #1 0x7fac7023bfab in uWS::Server::upgradeHandler(uWS::Server*) ../src/uWS.cpp:357
2016-05-12_23:43:18.08652 #2 0x7fac7023cb6c in uWS::Server::upgrade(int, char const*, void*, bool) ../src/uWS.cpp:428
2016-05-12_23:43:18.09004 #3 0x7fac7024da46 in upgrade(v8::FunctionCallbackInfo<v8::Value> const&) ../src/addon.cpp:191
2016-05-12_23:43:18.09007 #4 0x677839 in v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) (/usr/bin/nodejs+0x677839)
2016-05-12_23:43:18.09008 #5 0x69ed5f (/usr/bin/nodejs+0x69ed5f)
2016-05-12_23:43:18.09008 #6 0x69f0dc (/usr/bin/nodejs+0x69f0dc)
2016-05-12_23:43:18.09038 #7 0x20d0f5c0963a (<unknown module>)
2016-05-12_23:43:18.09062 #8 0x20d0f6247b70 (<unknown module>)
2016-05-12_23:43:18.09086 #9 0x20d0f643d8bf (<unknown module>)
2016-05-12_23:43:18.09108 #10 0x20d0f5c09ff6 (<unknown module>)
2016-05-12_23:43:18.09133 #11 0x20d0f61fa722 (<unknown module>)
2016-05-12_23:43:18.09154 #12 0x20d0f5c318fc (<unknown module>)
2016-05-12_23:43:18.09179 #13 0x20d0f5c15b61 (<unknown module>)
2016-05-12_23:43:18.09180 #14 0x7a9dcf (/usr/bin/nodejs+0x7a9dcf)
2016-05-12_23:43:18.09182 #15 0x7ab09a in v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool) (/usr/bin/nodejs+0x7ab09a)
2016-05-12_23:43:18.09183 #16 0x66d074 in v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) (/usr/bin/nodejs+0x66d074)
2016-05-12_23:43:18.09184 #17 0x66d180 in v8::Function::Call(v8::Local<v8::Value>, int, v8::Local<v8::Value>*) (/usr/bin/nodejs+0x66d180)
2016-05-12_23:43:18.09197 #18 0xacf8ec in node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) (/usr/bin/nodejs+0xacf8ec)
2016-05-12_23:43:18.09198 #19 0xadb61e in node::HandleWrap::OnClose(uv_handle_s*) (/usr/bin/nodejs+0xadb61e)
2016-05-12_23:43:18.09199 #20 0x7fac8523d977 in uv_run (/usr/lib/x86_64-linux-gnu/libuv.so.1+0xa977)
2016-05-12_23:43:18.09224 #21 0x7fff31f2ffcf (<unknown module>)
2016-05-12_23:43:18.09225
2016-05-12_23:43:18.09225 SUMMARY: AddressSanitizer: heap-use-after-free ../src/uWS.cpp:1142 uWS::Socket::close(bool, unsigned short, char*, unsigned long)
2016-05-12_23:43:18.09235 Shadow bytes around the buggy address:
2016-05-12_23:43:18.09236 0x0c1c7ffff610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa
2016-05-12_23:43:18.09237 0x0c1c7ffff620: fa fa fa fa fa fa fa fa fd fd fd fd fd fd fd fd
2016-05-12_23:43:18.09238 0x0c1c7ffff630: fd fd fd fd fd fd fd fd fd fd fd fa fa fa fa fa
2016-05-12_23:43:18.09239 0x0c1c7ffff640: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
2016-05-12_23:43:18.09239 0x0c1c7ffff650: fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa fa
2016-05-12_23:43:18.09240 =>0x0c1c7ffff660:[fd]fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
2016-05-12_23:43:18.09240 0x0c1c7ffff670: fd fd fd fd fa fa fa fa fa fa fa fa 00 00 00 00
2016-05-12_23:43:18.09241 0x0c1c7ffff680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa
2016-05-12_23:43:18.09241 0x0c1c7ffff690: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
2016-05-12_23:43:18.09242 0x0c1c7ffff6a0: 00 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa
2016-05-12_23:43:18.09242 0x0c1c7ffff6b0: fa fa fa fa fd fd fd fd fd fd fd fd fd fd fd fd
2016-05-12_23:43:18.09242 Shadow byte legend (one shadow byte represents 8 application bytes):
2016-05-12_23:43:18.09243 Addressable: 00
2016-05-12_23:43:18.09243 Partially addressable: 01 02 03 04 05 06 07
2016-05-12_23:43:18.09243 Heap left redzone: fa
2016-05-12_23:43:18.09244 Heap right redzone: fb
2016-05-12_23:43:18.09244 Freed heap region: fd
2016-05-12_23:43:18.09245 Stack left redzone: f1
2016-05-12_23:43:18.09246 Stack mid redzone: f2
2016-05-12_23:43:18.09246 Stack right redzone: f3
2016-05-12_23:43:18.09247 Stack partial redzone: f4
2016-05-12_23:43:18.09247 Stack after return: f5
2016-05-12_23:43:18.09248 Stack use after scope: f8
2016-05-12_23:43:18.09248 Global redzone: f9
2016-05-12_23:43:18.09249 Global init order: f6
2016-05-12_23:43:18.09250 Poisoned by user: f7
2016-05-12_23:43:18.09250 Container overflow: fc
2016-05-12_23:43:18.09250 Array cookie: ac
2016-05-12_23:43:18.09251 Intra object redzone: bb
2016-05-12_23:43:18.09252 ASan internal: fe
2016-05-12_23:43:18.09252 ==18712==ABORTING
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment