All of lore.kernel.org
 help / color / mirror / Atom feed
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: Alexander Aring <aahringo@redhat.com>,
	Christine Caulfield <ccaulfie@redhat.com>,
	David Teigland <teigland@redhat.com>
Cc: "Reported-by : Randy Dunlap" <rdunlap@infradead.org>,
	cluster-devel@redhat.com, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>
Subject: [PATCH] fs: dlm: Protect IPV6 field access by CONFIG_IPV6
Date: Thu, 18 Nov 2021 09:23:55 +0100	[thread overview]
Message-ID: <20211118082355.983825-1-geert@linux-m68k.org> (raw)

If CONFIG_IPV6=n:

    In file included from fs/dlm/lowcomms.c:46:
    fs/dlm/lowcomms.c: In function ‘lowcomms_error_report’:
    ./include/net/sock.h:386:34: error: ‘struct sock_common’ has no member named ‘skc_v6_daddr’; did you mean ‘skc_daddr’?
      386 | #define sk_v6_daddr  __sk_common.skc_v6_daddr
	  |                                  ^~~~~~~~~~~~
    ./include/linux/printk.h:422:19: note: in expansion of macro ‘sk_v6_daddr’
      422 |   _p_func(_fmt, ##__VA_ARGS__);    \
	  |                   ^~~~~~~~~~~
    ./include/linux/printk.h:450:26: note: in expansion of macro ‘printk_index_wrap’
      450 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
	  |                          ^~~~~~~~~~~~~~~~~
    ./include/linux/printk.h:644:3: note: in expansion of macro ‘printk’
      644 |   printk(fmt, ##__VA_ARGS__);    \
	  |   ^~~~~~
    fs/dlm/lowcomms.c:612:3: note: in expansion of macro ‘printk_ratelimited’
      612 |   printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
	  |   ^~~~~~~~~~~~~~~~~~

Fix this by protecting the code that accesses IPV6-only fields by a
check for CONFIG_IPV6.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Fixes: 4c3d90570bcc2b33 ("fs: dlm: don't call kernel_getpeername() in error_report()")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 fs/dlm/lowcomms.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 203470189011102d..f7fc1ac76ce83a5f 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.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Geert Uytterhoeven <geert@linux-m68k.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH] fs: dlm: Protect IPV6 field access by CONFIG_IPV6
Date: Thu, 18 Nov 2021 09:23:55 +0100	[thread overview]
Message-ID: <20211118082355.983825-1-geert@linux-m68k.org> (raw)

If CONFIG_IPV6=n:

    In file included from fs/dlm/lowcomms.c:46:
    fs/dlm/lowcomms.c: In function ?lowcomms_error_report?:
    ./include/net/sock.h:386:34: error: ?struct sock_common? has no member named ?skc_v6_daddr?; did you mean ?skc_daddr??
      386 | #define sk_v6_daddr  __sk_common.skc_v6_daddr
	  |                                  ^~~~~~~~~~~~
    ./include/linux/printk.h:422:19: note: in expansion of macro ?sk_v6_daddr?
      422 |   _p_func(_fmt, ##__VA_ARGS__);    \
	  |                   ^~~~~~~~~~~
    ./include/linux/printk.h:450:26: note: in expansion of macro ?printk_index_wrap?
      450 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
	  |                          ^~~~~~~~~~~~~~~~~
    ./include/linux/printk.h:644:3: note: in expansion of macro ?printk?
      644 |   printk(fmt, ##__VA_ARGS__);    \
	  |   ^~~~~~
    fs/dlm/lowcomms.c:612:3: note: in expansion of macro ?printk_ratelimited?
      612 |   printk_ratelimited(KERN_ERR "dlm: node %d: socket error "
	  |   ^~~~~~~~~~~~~~~~~~

Fix this by protecting the code that accesses IPV6-only fields by a
check for CONFIG_IPV6.

Reported-by: Randy Dunlap <rdunlap@infradead.org>
Fixes: 4c3d90570bcc2b33 ("fs: dlm: don't call kernel_getpeername() in error_report()")
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 fs/dlm/lowcomms.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
index 203470189011102d..f7fc1ac76ce83a5f 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.25.1




             reply	other threads:[~2021-11-18  8:26 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-18  8:23 Geert Uytterhoeven [this message]
2021-11-18  8:23 ` [Cluster-devel] [PATCH] fs: dlm: Protect IPV6 field access by CONFIG_IPV6 Geert Uytterhoeven
2021-11-18 14:52 ` Alexander Aring
2021-11-18 14:52   ` [Cluster-devel] " Alexander Aring

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211118082355.983825-1-geert@linux-m68k.org \
    --to=geert@linux-m68k.org \
    --cc=aahringo@redhat.com \
    --cc=ccaulfie@redhat.com \
    --cc=cluster-devel@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=rdunlap@infradead.org \
    --cc=teigland@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.