On 21/11/2024 00:34, Sergey Ryazanov wrote:
On 19.11.2024 15:44, Antonio Quartulli wrote:
On 15/11/2024 15:28, Antonio Quartulli wrote:
[...]
+}
+
+static struct ovpn_socket *ovpn_socket_get(struct socket *sock)
+{
+    struct ovpn_socket *ovpn_sock;
+
+    rcu_read_lock();
+    ovpn_sock = rcu_dereference_sk_user_data(sock->sk);
+    if (!ovpn_socket_hold(ovpn_sock)) {
+        pr_warn("%s: found ovpn_socket with ref = 0\n", __func__);

Should we be more specific here and print warning with netdev_warn(ovpn_sock->ovpn->dev, ...)?

ACK must be an unnoticed leftover

I take this back.
If refcounter is zero, I'd avoid accessing any field of the ovpn_sock object, thus the pr_warn() without any reference to the device.

If it's such unlikely scenario, then should it be:

if (WARN_ON(!ovpn_socket_hold(ovpn_sock)))
     ovpn_sock = NULL;

?

Yeah, makes sense.

Thanks!


--
Sergey

--
Antonio Quartulli
OpenVPN Inc.


Reply via email to