VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / ipv4 / ip_sockglue.c
index 39e435a..8bb874b 100644 (file)
@@ -759,6 +759,7 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
                                err = ip_mc_join_group(sk, &mreq);
                                if (err)
                                        break;
+                               greqs.gsr_interface = mreq.imr_ifindex;
                                omode = MCAST_INCLUDE;
                                add = 1;
                        } else /* MCAST_LEAVE_SOURCE_GROUP */ {
@@ -774,8 +775,8 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
                        extern int sysctl_optmem_max;
                        extern int sysctl_igmp_max_msf;
                        struct sockaddr_in *psin;
-                       struct ip_msfilter *msf = 0;
-                       struct group_filter *gsf = 0;
+                       struct ip_msfilter *msf = NULL;
+                       struct group_filter *gsf = NULL;
                        int msize, i, ifindex;
 
                        if (optlen < GROUP_FILTER_SIZE(0))
@@ -828,7 +829,7 @@ int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
                                msf->imsf_slist[i] = psin->sin_addr.s_addr;
                        }
                        kfree(gsf);
-                       gsf = 0;
+                       gsf = NULL;
 
                        err = ip_mc_msfilter(sk, msf, ifindex);
 mc_msf_out: