X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=net%2Fappletalk%2Fddp.c;h=b41375d4d295d0299d67701d5a4502fd57acb1ad;hb=4a3033ef6e6bb4c566bd1d556de69b494d76976c;hp=4072e9d394d61ddf9bb7afc1f49205967277307c;hpb=f19e00ee84be14e840386cb4f3c0bda5b9cfb5ab;p=linux.git diff --git a/net/appletalk/ddp.c b/net/appletalk/ddp.c index 4072e9d394d6..b41375d4d295 100644 --- a/net/appletalk/ddp.c +++ b/net/appletalk/ddp.c @@ -1023,6 +1023,11 @@ static int atalk_create(struct net *net, struct socket *sock, int protocol, */ if (sock->type != SOCK_RAW && sock->type != SOCK_DGRAM) goto out; + + rc = -EPERM; + if (sock->type == SOCK_RAW && !kern && !capable(CAP_NET_RAW)) + goto out; + rc = -ENOMEM; sk = sk_alloc(net, PF_APPLETALK, GFP_KERNEL, &ddp_proto, kern); if (!sk)