aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/af_inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r--net/ipv4/af_inet.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index e68103475cca..110a19edacc8 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -241,7 +241,7 @@ EXPORT_SYMBOL(build_ehash_secret);
241 * Create an inet socket. 241 * Create an inet socket.
242 */ 242 */
243 243
244static int inet_create(struct socket *sock, int protocol) 244static int inet_create(struct net *net, struct socket *sock, int protocol)
245{ 245{
246 struct sock *sk; 246 struct sock *sk;
247 struct list_head *p; 247 struct list_head *p;
@@ -253,6 +253,9 @@ static int inet_create(struct socket *sock, int protocol)
253 int try_loading_module = 0; 253 int try_loading_module = 0;
254 int err; 254 int err;
255 255
256 if (net != &init_net)
257 return -EAFNOSUPPORT;
258
256 if (sock->type != SOCK_RAW && 259 if (sock->type != SOCK_RAW &&
257 sock->type != SOCK_DGRAM && 260 sock->type != SOCK_DGRAM &&
258 !inet_ehash_secret) 261 !inet_ehash_secret)
@@ -320,7 +323,7 @@ lookup_protocol:
320 BUG_TRAP(answer_prot->slab != NULL); 323 BUG_TRAP(answer_prot->slab != NULL);
321 324
322 err = -ENOBUFS; 325 err = -ENOBUFS;
323 sk = sk_alloc(PF_INET, GFP_KERNEL, answer_prot, 1); 326 sk = sk_alloc(net, PF_INET, GFP_KERNEL, answer_prot, 1);
324 if (sk == NULL) 327 if (sk == NULL)
325 goto out; 328 goto out;
326 329