From cb45bd03575fb0df81991a109c6cf2645a23c635 Mon Sep 17 00:00:00 2001 From: GameParrot <85067619+GameParrot@users.noreply.github.com> Date: Sat, 27 May 2023 09:18:38 -0400 Subject: [PATCH 1/2] No crash on unknown socktype --- src/network.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/network.cpp b/src/network.cpp index 584fdb3..a999957 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -59,7 +59,7 @@ bionic::socktype bionic::from_host_socktype(int socktype) { case SOCK_STREAM: return socktype::STREAM; case SOCK_DGRAM: return socktype::DGRAM; case SOCK_RAW: return socktype::RAW; - default: throw std::runtime_error("Unknown socktype"); + default: return (bionic::socktype)0; } } @@ -68,7 +68,7 @@ int bionic::to_host_socktype(bionic::socktype socktype) { case socktype::STREAM: return SOCK_STREAM; case socktype::DGRAM: return SOCK_DGRAM; case socktype::RAW: return SOCK_RAW; - default: throw std::runtime_error("Unknown socktype"); + default: return 0; } } @@ -514,4 +514,4 @@ void shim::add_network_shimmed_symbols(std::vector &list) {"if_nameindex", if_nameindex}, {"if_freenameindex", if_freenameindex}, }); -} \ No newline at end of file +} From d5051e9261921db8da2b779d99e53ce7aabe36ee Mon Sep 17 00:00:00 2001 From: GameParrot <85067619+GameParrot@users.noreply.github.com> Date: Wed, 31 May 2023 13:02:44 -0400 Subject: [PATCH 2/2] map 0 --- src/network.cpp | 12 +++++++++--- src/network.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/network.cpp b/src/network.cpp index a999957..2a880a2 100644 --- a/src/network.cpp +++ b/src/network.cpp @@ -59,7 +59,10 @@ bionic::socktype bionic::from_host_socktype(int socktype) { case SOCK_STREAM: return socktype::STREAM; case SOCK_DGRAM: return socktype::DGRAM; case SOCK_RAW: return socktype::RAW; - default: return (bionic::socktype)0; + case 0: return socktype::ANY; + default: + printf("WARNING: Unknown socktype\n"); + return socktype::ANY; } } @@ -68,7 +71,10 @@ int bionic::to_host_socktype(bionic::socktype socktype) { case socktype::STREAM: return SOCK_STREAM; case socktype::DGRAM: return SOCK_DGRAM; case socktype::RAW: return SOCK_RAW; - default: return 0; + case socktype::ANY: return 0; + default: + printf("WARNING: Unknown socktype\n"); + return 0; } } @@ -514,4 +520,4 @@ void shim::add_network_shimmed_symbols(std::vector &list) {"if_nameindex", if_nameindex}, {"if_freenameindex", if_freenameindex}, }); -} +} \ No newline at end of file diff --git a/src/network.h b/src/network.h index 9e2eb65..700f8c7 100644 --- a/src/network.h +++ b/src/network.h @@ -27,6 +27,7 @@ namespace shim { }; enum class socktype : int { + ANY = 0, STREAM = 1, DGRAM = 2, RAW = 3