Message ID | 1249457297-8355-3-git-send-email-dbaryshkov@gmail.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Date: Wed, 5 Aug 2009 11:28:16 +0400 > Provide dummt get/setsockopt implementations to stop these > syscalls from oopsing on our sockets. > > Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> See "sock_no_getsockopt()" and "sock_no_setsockopt()" which are provided specifically for this situation. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Aug 05, 2009 at 12:17:14PM -0700, David Miller wrote: > From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> > Date: Wed, 5 Aug 2009 11:28:16 +0400 > > > Provide dummt get/setsockopt implementations to stop these > > syscalls from oopsing on our sockets. > > > > Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> > > See "sock_no_getsockopt()" and "sock_no_setsockopt()" which are > provided specifically for this situation. There functions are to be used in struct proto_ops and not in the struct proto. I'd like to use sock_common_get/setsockopt() from the beginning, as there will be sockopts at least for dgram protocols. If you say so, I can, of course, replace this patch with the one you suggested. However I really don't see a point in doing this.
From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Date: Thu, 6 Aug 2009 01:41:39 +0400 > On Wed, Aug 05, 2009 at 12:17:14PM -0700, David Miller wrote: >> From: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> >> Date: Wed, 5 Aug 2009 11:28:16 +0400 >> >> > Provide dummt get/setsockopt implementations to stop these >> > syscalls from oopsing on our sockets. >> > >> > Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> >> >> See "sock_no_getsockopt()" and "sock_no_setsockopt()" which are >> provided specifically for this situation. > > There functions are to be used in struct proto_ops and not in the > struct proto. I'd like to use sock_common_get/setsockopt() from the > beginning, as there will be sockopts at least for dgram protocols. Ok, my bad. The patch is fine. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ieee802154/dgram.c b/net/ieee802154/dgram.c index 53dd912..d1da6c6 100644 --- a/net/ieee802154/dgram.c +++ b/net/ieee802154/dgram.c @@ -377,6 +377,18 @@ int ieee802154_dgram_deliver(struct net_device *dev, struct sk_buff *skb) return ret; } +static int dgram_getsockopt(struct sock *sk, int level, int optname, + char __user *optval, int __user *optlen) +{ + return -EOPNOTSUPP; +} + +static int dgram_setsockopt(struct sock *sk, int level, int optname, + char __user *optval, int __user optlen) +{ + return -EOPNOTSUPP; +} + struct proto ieee802154_dgram_prot = { .name = "IEEE-802.15.4-MAC", .owner = THIS_MODULE, @@ -391,5 +403,7 @@ struct proto ieee802154_dgram_prot = { .connect = dgram_connect, .disconnect = dgram_disconnect, .ioctl = dgram_ioctl, + .getsockopt = dgram_getsockopt, + .setsockopt = dgram_setsockopt, }; diff --git a/net/ieee802154/raw.c b/net/ieee802154/raw.c index ea8d1f1..60dee69 100644 --- a/net/ieee802154/raw.c +++ b/net/ieee802154/raw.c @@ -238,6 +238,18 @@ void ieee802154_raw_deliver(struct net_device *dev, struct sk_buff *skb) read_unlock(&raw_lock); } +static int raw_getsockopt(struct sock *sk, int level, int optname, + char __user *optval, int __user *optlen) +{ + return -EOPNOTSUPP; +} + +static int raw_setsockopt(struct sock *sk, int level, int optname, + char __user *optval, int __user optlen) +{ + return -EOPNOTSUPP; +} + struct proto ieee802154_raw_prot = { .name = "IEEE-802.15.4-RAW", .owner = THIS_MODULE, @@ -250,5 +262,7 @@ struct proto ieee802154_raw_prot = { .unhash = raw_unhash, .connect = raw_connect, .disconnect = raw_disconnect, + .getsockopt = raw_getsockopt, + .setsockopt = raw_setsockopt, };
Provide dummt get/setsockopt implementations to stop these syscalls from oopsing on our sockets. Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> --- net/ieee802154/dgram.c | 14 ++++++++++++++ net/ieee802154/raw.c | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-)