Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

In window, openvpn crash when forbid tun network card

Aperta
#249 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp

Direzione di ricerca

Riproduci il malfunzionamento di Windows 11 connettendoti con openvpn3 3.7.0 e disabilitando quindi l'adattatore di rete TUN. Inizia da openvpn::TunWin::WintunClient::read() e stop(), seguendo la pulizia attraverso TunWrapTemplate::close() fino alla distruzione di win_iocp_handle_service di Asio. Il lavoro è completato quando il malfunzionamento dell'adattatore viene gestito senza il crash dovuto a un handle non valido.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Reproduce

I edit a client to wrap openvpn3. It just call connect.

I forbid network card in control panel after connected. It will crash

Error Infomation

0xC0000008: An invalid handle was specified.

Environment

  • openvpn3: 3.7.0
  • win11: 21H2

Stack Information

 	ntdll.dll!KiRaiseUserExceptionDispatcher()	未知
 	KernelBase.dll!CloseHandle()	未知
>	libovpn.dll!asio::detail::win_iocp_handle_service::close_for_destruction(asio::detail::win_iocp_handle_service::implementation_type & impl) 行 545	C++
 	libovpn.dll!asio::detail::win_iocp_handle_service::destroy(asio::detail::win_iocp_handle_service::implementation_type & impl) 行 167	C++
 	libovpn.dll!asio::detail::io_object_impl<asio::detail::win_iocp_handle_service,asio::any_io_executor>::~io_object_impl<asio::detail::win_iocp_handle_service,asio::any_io_executor>() 行 88	C++
 	libovpn.dll!asio::windows::basic_overlapped_handle<asio::any_io_executor>::~basic_overlapped_handle<asio::any_io_executor>() 行 340	C++
 	[外部代码]	
 	libovpn.dll!openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>::close() 行 90	C++
 	libovpn.dll!openvpn::TunWrapTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>>::close() 行 99	C++
 	libovpn.dll!openvpn::TunWrapTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>>::~TunWrapTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>>() 行 47	C++
 	libovpn.dll!openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>::~TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>() 行 58	C++
 	[外部代码]	
 	libovpn.dll!openvpn::intrusive_ptr_release<openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>>(openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState> * p) 行 738	C++
 	libovpn.dll!openvpn::RCPtr<openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>>::~RCPtr<openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>>() 行 140	C++
 	libovpn.dll!openvpn::RCPtr<openvpn::TunPersistTemplate<openvpn::ScopedAsioStream<asio::windows::basic_stream_handle<asio::any_io_executor>>,openvpn::TunWin::TunPersistState>>::reset() 行 157	C++
 	libovpn.dll!openvpn::TunWin::WintunClient::stop() 行 120	C++
 	libovpn.dll!openvpn::ClientProto::Session::stop(const bool call_terminate_callback) 行 244	C++
 	libovpn.dll!openvpn::ClientProto::Session::tun_error(const openvpn::Error::Type fatal_err, const std::string & err_text) 行 809	C++
 	libovpn.dll!openvpn::TunWin::WintunClient::read() 行 219	C++
 	libovpn.dll!openvpn::TunWin::WintunClient::read::__l15::<lambda>(const std::error_code & error) 行 230	C++
 	libovpn.dll!asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code>::operator()() 行 172	C++
 	libovpn.dll!asio::asio_handler_invoke<asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code>>(asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code> & function, ...) 行 91	C++
 	libovpn.dll!asio_handler_invoke_helpers::invoke<asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code>,void <lambda>(const std::error_code &)>(asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code> & function, openvpn::TunWin::WintunClient::read::__l15::void <lambda>(const std::error_code &) & context) 行 56	C++
 	libovpn.dll!asio::detail::handler_work<void <lambda>(const std::error_code &),asio::any_io_executor,void>::complete<asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code>>(asio::detail::binder1<void <lambda>(const std::error_code &),std::error_code> & function, openvpn::TunWin::WintunClient::read::__l15::void <lambda>(const std::error_code &) & handler) 行 512	C++
 	libovpn.dll!asio::detail::wait_handler<void <lambda>(const std::error_code &),asio::any_io_executor>::do_complete(void * owner, asio::detail::win_iocp_operation * base, const std::error_code & __formal, unsigned __int64 __formal) 行 75	C++
 	libovpn.dll!asio::detail::win_iocp_operation::complete(void * owner, const std::error_code & ec, unsigned __int64 bytes_transferred) 行 47	C++
 	libovpn.dll!asio::detail::win_iocp_io_context::do_one(unsigned long msec, asio::detail::win_iocp_thread_info & this_thread, std::error_code & ec) 行 473	C++
 	libovpn.dll!asio::detail::win_iocp_io_context::run(std::error_code & ec) 行 203	C++
 	libovpn.dll!asio::io_context::run() 行 62	C++
 	libovpn.dll!openvpn::ClientAPI::OpenVPNClient::connect_run() 行 1141	C++
 	libovpn.dll!openvpn::ClientAPI::OpenVPNClient::do_connect() 行 931	C++
 	libovpn.dll!openvpn::ClientAPI::OpenVPNClient::connect() 行 914	C++
 	libovpn.dll!libopenvpn::OVPNClientImpl::connect() 行 13	C++
 	openvpn_flutter_plugin.dll!openvpn_flutter_plugin::FlutterOpenVPN::StartThread::__l2::<lambda>() 行 187	C++

Lingua principale
C++
Stelle
1.2k
Fork
467
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di OpenVPN/openvpn3

Tutte le issue di OpenVPN/openvpn3

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.