[PATCH 06/16] gtp: add error handling to gtp_newlink

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.

Pablo Neira Ayuso pablo at soleta.eu
Mon Nov 16 21:57:50 UTC 2015


On Mon, Nov 16, 2015 at 07:16:58PM +0100, Andreas Schultz wrote:
> >> diff --git a/gtp.c b/gtp.c
> >> index 11f8fad..4f5729e 100644
> >> --- a/gtp.c
> >> +++ b/gtp.c
> >> @@ -756,8 +756,12 @@ static int gtp_newlink(struct net *src_net, struct
> >> net_device *dev,
> >>  
> >>  	if (!tb[IFLA_MTU])
> >>  		dev->mtu = real_dev->mtu;
> >> -	else if (dev->mtu > real_dev->mtu)
> >> -		return -EINVAL;
> >> +	else if (dev->mtu > real_dev->mtu) {
> >> +		netdev_dbg(dev, "GTP mtu greater that transport MTU (%d > %d)\n",
> >> +			   dev->mtu, real_dev->mtu);
> >> +		err = -EINVAL;
> >> +		goto out_err;
> > 
> > This is function is using __dev_get_by_index(), so we're not holding a
> > reference on the netdevice here.
> 
> But there is a 'dev_hold(real_dev);' right before that if condition. Doesn't that
> take a reference to the netdevice?

Ah I see. Right, there is a leak there.

> Anyway, the conversion to the iptunnel framework makes this code largely
> obsolete. So I'm going to drop this change.

OK.



More information about the OpenBSC mailing list