This patch will surround the AF_INET6 case in sk_error_report() of dlm
with a #if IS_ENABLED(CONFIG_IPV6). The field sk->sk_v6_daddr is not
defined when CONFIG_IPV6 is disabled. If CONFIG_IPV6 is disabled, the
socket creation with AF_INET6 should already fail because a runtime
check if AF_INET6 is registered. However if there is the possibility
that AF_INET6 is set as sk_family the sk_error_report() callback will
print then an invalid family type error.

Reported-by: kernel test robot <[email protected]>
Fixes: 4c3d90570bcc ("fs: dlm: don't call kernel_getpeername() in 
error_report()")
Signed-off-by: Alexander Aring <[email protected]>
---
 fs/dlm/lowcomms.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 203470189011..f7fc1ac76ce8 100644
--- a/fs/dlm/lowcomms.c
+++ b/fs/dlm/lowcomms.c
@@ -608,6 +608,7 @@ static void lowcomms_error_report(struct sock *sk)
                                   ntohs(inet->inet_dport), sk->sk_err,
                                   sk->sk_err_soft);
                break;
+#if IS_ENABLED(CONFIG_IPV6)
        case AF_INET6:
                printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
                                   "sending to node %d at %pI6c, "
@@ -616,6 +617,7 @@ static void lowcomms_error_report(struct sock *sk)
                                   ntohs(inet->inet_dport), sk->sk_err,
                                   sk->sk_err_soft);
                break;
+#endif
        default:
                printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
                                   "invalid socket family %d set, "
-- 
2.27.0

Reply via email to