0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00

Exit if a proper message instead of segfault on Android without management

The Android implementation is relying on the management interface to be
always available. Trying to run the Android binary without the mangament
interface outside the app leads to a segfault. Exit with a FATAL error
instead.

Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20230220131424.1749736-1-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26288.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Arne Schwabe 2023-02-20 14:14:24 +01:00 committed by Gert Doering
parent b9e0e40607
commit 3132bead49
2 changed files with 9 additions and 0 deletions

View File

@ -2192,6 +2192,10 @@ man_recv_with_fd(int fd, void *ptr, size_t nbytes, int flags, int *recvfd)
bool
management_android_control(struct management *man, const char *command, const char *msg)
{
if (!man)
{
msg(M_FATAL, "Required management interface not available.");
}
struct user_pass up;
CLEAR(up);
strncpy(up.username, msg, sizeof(up.username)-1);

View File

@ -1161,6 +1161,11 @@ create_socket(struct link_socket *sock, struct addrinfo *addr)
static void
protect_fd_nonlocal(int fd, const struct sockaddr *addr)
{
if (!management)
{
msg(M_FATAL, "Required management interface not available.")
}
/* pass socket FD to management interface to pass on to VPNService API
* as "protected socket" (exempt from being routed into tunnel)
*/