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:
parent
b9e0e40607
commit
3132bead49
@ -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);
|
||||
|
@ -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)
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user