netfilter: nf_conntrack_sip: fix IPV6 dependency

Message ID 20190304204019.2142770-1-arnd@arndb.de
State New
Headers show
Series
  • netfilter: nf_conntrack_sip: fix IPV6 dependency
Related show

Commit Message

Arnd Bergmann March 4, 2019, 8:40 p.m.
With CONFIG_IPV6=m and CONFIG_NF_CONNTRACK_SIP=y, we now get a link failure:

net/netfilter/nf_conntrack_sip.o: In function `process_sdp':
nf_conntrack_sip.c:(.text+0x4344): undefined reference to `ip6_route_output_flags'

Fix this by adding a dependency that forces CONFIG_NF_CONNTRACK_SIP to be =m
when CONFIG_IPV6=m, as we already do for several other drivers with a similar
requirement.

Fixes: a3419ce3356c ("netfilter: nf_conntrack_sip: add sip_external_media logic")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 net/netfilter/Kconfig | 1 +
 1 file changed, 1 insertion(+)

-- 
2.20.0

Comments

Pablo Neira Ayuso March 8, 2019, 4:04 p.m. | #1
hi Arnd,

Cc'ing Alin Nastac.

On Mon, Mar 04, 2019 at 09:40:12PM +0100, Arnd Bergmann wrote:
> With CONFIG_IPV6=m and CONFIG_NF_CONNTRACK_SIP=y, we now get a link failure:

> 

> net/netfilter/nf_conntrack_sip.o: In function `process_sdp':

> nf_conntrack_sip.c:(.text+0x4344): undefined reference to `ip6_route_output_flags'


I see. We can probably use nf_route() instead.

Or if needed, use struct nf_ipv6_ops for this.

        if (v6ops)
                ret = v6ops->route_xyz(...);

@Alin: Would you send us a patch to do so to fix a3419ce3356cf1f
netfilter: nf_conntrack_sip: add sip_external_media logic".

This direct dependency with IPv6 is superfluous, it should not happen.

Thanks!
Alin Năstac March 8, 2019, 4:21 p.m. | #2
Hi Pablo,
On Fri, Mar 8, 2019 at 5:04 PM Pablo Neira Ayuso <pablo@netfilter.org> wrote:
>

> hi Arnd,

>

> Cc'ing Alin Nastac.

>

> On Mon, Mar 04, 2019 at 09:40:12PM +0100, Arnd Bergmann wrote:

> > With CONFIG_IPV6=m and CONFIG_NF_CONNTRACK_SIP=y, we now get a link failure:

> >

> > net/netfilter/nf_conntrack_sip.o: In function `process_sdp':

> > nf_conntrack_sip.c:(.text+0x4344): undefined reference to `ip6_route_output_flags'

>

> I see. We can probably use nf_route() instead.

>

> Or if needed, use struct nf_ipv6_ops for this.

>

>         if (v6ops)

>                 ret = v6ops->route_xyz(...);

>

> @Alin: Would you send us a patch to do so to fix a3419ce3356cf1f

> netfilter: nf_conntrack_sip: add sip_external_media logic".


nf_ip6_route(net, &dst, &fl6, false) seems to be appropriate.
I'll send the patch Monday.
Arnd Bergmann June 18, 2019, 6:09 p.m. | #3
On Fri, Mar 8, 2019 at 5:23 PM Alin Năstac <alin.nastac@gmail.com> wrote:

> On Fri, Mar 8, 2019 at 5:04 PM Pablo Neira Ayuso <pablo@netfilter.org> wrote:

> > On Mon, Mar 04, 2019 at 09:40:12PM +0100, Arnd Bergmann wrote:

> > > With CONFIG_IPV6=m and CONFIG_NF_CONNTRACK_SIP=y, we now get a link failure:

> > >

> > > net/netfilter/nf_conntrack_sip.o: In function `process_sdp':

> > > nf_conntrack_sip.c:(.text+0x4344): undefined reference to `ip6_route_output_flags'

> >

> > I see. We can probably use nf_route() instead.

> >

> > Or if needed, use struct nf_ipv6_ops for this.

> >

> >         if (v6ops)

> >                 ret = v6ops->route_xyz(...);

> >

> > @Alin: Would you send us a patch to do so to fix a3419ce3356cf1f

> > netfilter: nf_conntrack_sip: add sip_external_media logic".

>

> nf_ip6_route(net, &dst, &fl6, false) seems to be appropriate.

> I'll send the patch Monday.


I see the original bug I reported is still there. Can you send that patch
you had planned to do?

       Arnd
Arnd Bergmann June 18, 2019, 6:13 p.m. | #4
On Tue, Jun 18, 2019 at 8:09 PM Arnd Bergmann <arnd@arndb.de> wrote:
> On Fri, Mar 8, 2019 at 5:23 PM Alin Năstac <alin.nastac@gmail.com> wrote:

> > On Fri, Mar 8, 2019 at 5:04 PM Pablo Neira Ayuso <pablo@netfilter.org> wrote:

> > > On Mon, Mar 04, 2019 at 09:40:12PM +0100, Arnd Bergmann wrote:

> > > > With CONFIG_IPV6=m and CONFIG_NF_CONNTRACK_SIP=y, we now get a link failure:

> > > >

> > > > net/netfilter/nf_conntrack_sip.o: In function `process_sdp':

> > > > nf_conntrack_sip.c:(.text+0x4344): undefined reference to `ip6_route_output_flags'

> > >

> > > I see. We can probably use nf_route() instead.

> > >

> > > Or if needed, use struct nf_ipv6_ops for this.

> > >

> > >         if (v6ops)

> > >                 ret = v6ops->route_xyz(...);

> > >

> > > @Alin: Would you send us a patch to do so to fix a3419ce3356cf1f

> > > netfilter: nf_conntrack_sip: add sip_external_media logic".

> >

> > nf_ip6_route(net, &dst, &fl6, false) seems to be appropriate.

> > I'll send the patch Monday.

>

> I see the original bug I reported is still there. Can you send that patch

> you had planned to do?


Hmm, I think I mixed up this patch with a different one that is missing.
Please ignore my reply above.

      Arnd

Patch

diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index d43ffb09939b..964bc317ad0a 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -333,6 +333,7 @@  config NF_CONNTRACK_SANE
 
 config NF_CONNTRACK_SIP
 	tristate "SIP protocol support"
+	depends on IPV6 || IPV6=n
 	default m if NETFILTER_ADVANCED=n
 	help
 	  SIP is an application-layer control protocol that can establish,