Re: [Openvpn-devel] [PATCH] Add missing check for nl_socket_alloc failure

2023-03-20 Thread Arne Schwabe

Am 14.02.23 um 15:01 schrieb Gert Doering:

Hi,

On Tue, Feb 14, 2023 at 02:56:58PM +0100, Arne Schwabe wrote:

  resolve_ovpn_netlink_id(int msglevel)
  {
-int ret;
  struct nl_sock *nl_sock = nl_socket_alloc();
  
-ret = genl_connect(nl_sock);

+if (!nl_sock)
+{
+msg(msglevel, "Allocating net link socket failed");
+}


... shouldn't we abort in this case, aka, M_FATAL (or "return -errno")?


I don't think so. This function is called from two code paths:

- dco_available: I don't think if detection of dco fails, we should quit 
openvpn completely.


- ovpn_dco_init_netlink: Here we already call it with M_ERR, which is 
  (M_FATAL | M_ERRNO)


Arne



___
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel


Re: [Openvpn-devel] [PATCH] Add missing check for nl_socket_alloc failure

2023-02-14 Thread Gert Doering
Hi,

On Tue, Feb 14, 2023 at 02:56:58PM +0100, Arne Schwabe wrote:
>  resolve_ovpn_netlink_id(int msglevel)
>  {
> -int ret;
>  struct nl_sock *nl_sock = nl_socket_alloc();
>  
> -ret = genl_connect(nl_sock);
> +if (!nl_sock)
> +{
> +msg(msglevel, "Allocating net link socket failed");
> +}

... shouldn't we abort in this case, aka, M_FATAL (or "return -errno")?

gert
-- 
"If was one thing all people took for granted, was conviction that if you 
 feed honest figures into a computer, honest figures come out. Never doubted 
 it myself till I met a computer with a sense of humor."
 Robert A. Heinlein, The Moon is a Harsh Mistress

Gert Doering - Munich, Germany g...@greenie.muc.de


signature.asc
Description: PGP signature
___
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel


[Openvpn-devel] [PATCH] Add missing check for nl_socket_alloc failure

2023-02-14 Thread Arne Schwabe
This can happen if the memory alloc fails.

Signed-off-by: Arne Schwabe 
---
 src/openvpn/dco_linux.c | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/openvpn/dco_linux.c b/src/openvpn/dco_linux.c
index c84f9cfe1..b1103c8d5 100644
--- a/src/openvpn/dco_linux.c
+++ b/src/openvpn/dco_linux.c
@@ -79,10 +79,14 @@ typedef int (*ovpn_nl_cb)(struct nl_msg *msg, void *arg);
 static int
 resolve_ovpn_netlink_id(int msglevel)
 {
-int ret;
 struct nl_sock *nl_sock = nl_socket_alloc();
 
-ret = genl_connect(nl_sock);
+if (!nl_sock)
+{
+msg(msglevel, "Allocating net link socket failed");
+}
+
+int ret = genl_connect(nl_sock);
 if (ret)
 {
 msg(msglevel, "Cannot connect to generic netlink: %s",
-- 
2.37.1 (Apple Git-137.1)



___
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel