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 <a...@rfc2549.org> --- src/openvpn/manage.c | 4 ++++ src/openvpn/socket.c | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/openvpn/manage.c b/src/openvpn/manage.c index 3ea1992b0..db88e3479 100644 --- a/src/openvpn/manage.c +++ b/src/openvpn/manage.c @@ -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); diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c index 42d953390..eff21ca56 100644 --- a/src/openvpn/socket.c +++ b/src/openvpn/socket.c @@ -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) */ -- 2.37.1 (Apple Git-137.1) _______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel