diff options
Diffstat (limited to 'net/ipv4/af_inet.c')
-rw-r--r-- | net/ipv4/af_inet.c | 7 |
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 | ||
244 | static int inet_create(struct socket *sock, int protocol) | 244 | static 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 | ||