microsoft / cpprestsdk

The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.
Other
7.96k stars 1.65k forks source link

Runtime error reported by UBSan, when using ws_client #1676

Open edisonhello opened 2 years ago

edisonhello commented 2 years ago

Here's the report by UBSan:

/opt/homebrew/include/pplx/pplxtasks.h:2125:74: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2125:74 in 
/opt/homebrew/include/pplx/pplxtasks.h:2126:17: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2126:17 in 
/opt/homebrew/include/pplx/pplxtasks.h:1931:35: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1931:35 in 
/opt/homebrew/include/pplx/pplxtasks.h:2126:36: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2126:36 in 
/opt/homebrew/include/pplx/pplxtasks.h:1933:34: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1933:34 in 
/opt/homebrew/include/pplx/pplxtasks.h:2130:22: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2130:22 in 
/opt/homebrew/include/pplx/pplxtasks.h:2144:41: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2144:41 in 
/opt/homebrew/include/pplx/pplxtasks.h:2145:17: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  00 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:2145:17 in 
/opt/homebrew/include/pplx/pplxtasks.h:1757:17: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1757:17 in 
/opt/homebrew/include/pplx/pplxtasks.h:1777:21: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1777:21 in 
/opt/homebrew/include/pplx/pplxtasks.h:1823:21: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1823:21 in 
/opt/homebrew/include/pplx/pplxtasks.h:1830:13: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1830:13 in 
/opt/homebrew/include/pplx/pplxtasks.h:1935:57: runtime error: member access within address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1935:57 in 
/opt/homebrew/include/pplx/pplxtasks.h:1834:18: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1834:18 in 
/opt/homebrew/include/pplx/pplxtasks.h:1838:9: runtime error: member call on address 0x00010b4145d8 which does not point to an object of type 'pplx::details::_Task_impl_base'
0x00010b4145d8: note: object is of type 'pplx::details::_Task_impl<unsigned char>'
 00 00 00 00  90 ae 5f 03 01 00 00 00  03 00 00 00 00 00 be be  00 00 00 00 00 00 00 00  00 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'pplx::details::_Task_impl<unsigned char>'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/pplx/pplxtasks.h:1838:9 in 
/opt/homebrew/include/cpprest/ws_client.h:456:97: runtime error: member call on address 0x00010a900098 which does not point to an object of type 'web::websockets::client::details::websocket_client_callback_impl'
0x00010a900098: note: object is of type 'web::websockets::client::details::wspp_callback_client'
 00 00 00 00  b8 1f 60 03 01 00 00 00  77 73 73 3a 2f 2f 66 74  78 2e 63 6f 6d 2f 77 73  2f 00 00 00
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'web::websockets::client::details::wspp_callback_client'
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /opt/homebrew/include/cpprest/ws_client.h:456:97 in 
/opt/homebrew/include/cpprest/astreambuf.h:1023:28: runtime error: member call on address 0x000105910d30 which does not point to an object of type 'Concurrency::streams::details::basic_streambuf<unsigned char>'
AddressSanitizer: nested bug in the same thread, aborting.