CEF 118 crashing when using CefURLRequest and PKI

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

CEF 118 crashing when using CefURLRequest and PKI

Postby obalash » Tue Oct 31, 2023 6:07 pm

Hi all,

When creating a CefURLRequest to a server with PKI authentication CEF crashes with the following stack:

# Child-SP RetAddr Call Site
00 (Inline Function) --------`-------- libcef!absl::variant<std::__Cr::map<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> >,std::__Cr::less<const void *>,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > >,absl::flat_hash_map<const void *,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> >,absl::container_internal::HashEq<const void *,void>::Hash,absl::container_internal::HashEq<const void *,void>::Eq,std::__Cr::allocator<std::__Cr::pair<const void *const,std::__Cr::unique_ptr<base::SupportsUserData::Data,std::__Cr::default_delete<base::SupportsUserData::Data> > > > > >::index [Y:\work\CEF3_git\chromium\src\third_party\abseil-cpp\absl\types\variant.h @ 698]
01 (Inline Function) --------`-------- libcef!absl::visit [Y:\work\CEF3_git\chromium\src\third_party\abseil-cpp\absl\types\variant.h @ 432]
02 00000088`4d7fef60 00007ffc`f24eca48 libcef!base::SupportsUserData::GetUserData+0x19 [Y:\work\CEF3_git\chromium\src\base\supports_user_data.cc @ 33]
03 (Inline Function) --------`-------- libcef!`anonymous namespace'::WebContentsUserDataAdapter::Get+0x10 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_base.cc @ 54]
04 00000088`4d7fefc0 00007ffc`f24d26c6 libcef!CefBrowserHostBase::GetBrowserForContents+0x18 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\browser_host_base.cc @ 115]
05 00000088`4d7feff0 00007ffc`f24d97c8 libcef!AlloyBrowserHostImpl::GetBrowserForContents+0x46 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\alloy\alloy_browser_host_impl.cc @ 249]
06 00000088`4d7ff040 00007ffc`f34abd04 libcef!AlloyContentBrowserClient::SelectClientCertificate+0x58 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\alloy\alloy_content_browser_client.cc @ 750]
07 00000088`4d7ff120 00007ffc`f80cb9d1 libcef!content::SSLClientAuthHandler::DidGetClientCerts+0x164 [Y:\work\CEF3_git\chromium\src\content\browser\ssl\ssl_client_auth_handler.cc @ 150]
08 00000088`4d7ff210 00007ffc`f683dd92 libcef!base::internal::FunctorTraits<void (content::AggregatableReportScheduler::TimerDelegate::*)(std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> >),void>::Invoke<void (content::AggregatableReportScheduler::TimerDelegate::*)(std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> >),const base::WeakPtr<content::AggregatableReportScheduler::TimerDelegate> &,std::__Cr::vector<content::AggregationServiceStorage::RequestAndId,std::__Cr::allocator<content::AggregationServiceStorage::RequestAndId> > >+0x61 [Y:\work\CEF3_git\chromium\src\base\functional\bind_internal.h @ 713]
09 (Inline Function) --------`-------- libcef!base::OnceCallback<void ()>::Run+0x19 [Y:\work\CEF3_git\chromium\src\base\functional\callback.h @ 152]
0a 00000088`4d7ff270 00007ffc`f6925980 libcef!base::TaskAnnotator::RunTaskImpl+0x182 [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.cc @ 201]
0b (Inline Function) --------`-------- libcef!base::TaskAnnotator::RunTask+0x1fc [Y:\work\CEF3_git\chromium\src\base\task\common\task_annotator.h @ 89]
0c (Inline Function) --------`-------- libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWorkImpl+0x5c2 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 480]
0d 00000088`4d7ff3b0 00007ffc`f6833691 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::DoWork+0x680 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 345]
0e 00000088`4d7ff700 00007ffc`f3b6e2ed libcef!base::MessagePumpForUI::DoRunLoop+0x291 [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 213]
0f 00000088`4d7ff8a0 00007ffc`f4310eb6 libcef!base::MessagePumpWin::Run+0x7d [Y:\work\CEF3_git\chromium\src\base\message_loop\message_pump_win.cc @ 79]
10 00000088`4d7ff900 00007ffc`f3b7d4e8 libcef!base::sequence_manager::internal::ThreadControllerWithMessagePumpImpl::Run+0xd6 [Y:\work\CEF3_git\chromium\src\base\task\sequence_manager\thread_controller_with_message_pump_impl.cc @ 648]
11 00000088`4d7ff990 00007ffc`f253a229 libcef!base::RunLoop::Run+0xc8 [Y:\work\CEF3_git\chromium\src\base\run_loop.cc @ 136]
12 (Inline Function) --------`-------- libcef!CefMainRunner::RunMessageLoop+0x90 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\main_runner.cc @ 282]
13 00000088`4d7ffaa0 00007ffc`f3ba9603 libcef!CefUIThread::ThreadMain+0x119 [Y:\work\CEF3_git\chromium\src\cef\libcef\browser\main_runner.cc @ 177]
14 00000088`4d7ffb60 00007ffd`e09155a0 libcef!base::`anonymous namespace'::ThreadFunc+0x113 [Y:\work\CEF3_git\chromium\src\base\threading\platform_thread_win.cc @ 126]
15 00000088`4d7ffbf0 00007ffd`e292485b KERNEL32!BaseThreadInitThunk+0x10
16 00000088`4d7ffc20 00000000`00000000 ntdll!RtlUserThreadStart+0x2b

This issue started in 118 (or at the very least was last seen working in 116). There doesnt appear to be any way to provide certificate information to CEFUrlRequestClient or CefRequest. Is this a bug? is there a workaround?

Thanks in advance,
Omer.
obalash
Techie
 
Posts: 16
Joined: Wed Oct 05, 2016 9:18 am

Re: CEF 118 crashing when using CefURLRequest and PKI

Postby magreenblatt » Tue Oct 31, 2023 6:13 pm

magreenblatt
Site Admin
 
Posts: 12409
Joined: Fri May 29, 2009 6:57 pm


Return to Support Forum

Who is online

Users browsing this forum: Google [Bot] and 200 guests