]> err.no Git - linux-2.6/blobdiff - net/sctp/protocol.c
tipc: Fix skb_under_panic when configuring TIPC without privileges
[linux-2.6] / net / sctp / protocol.c
index b34437fdea2675d5374f4bd254bc3ed5e7a4a1a2..b8bd9e014498fe9d0af9cd8a4cbf44676d4e86da 100644 (file)
@@ -113,6 +113,8 @@ static __init int sctp_proc_init(void)
                goto out_nomem;
        if (sctp_assocs_proc_init())
                goto out_nomem;
+       if (sctp_remaddr_proc_init())
+               goto out_nomem;
 
        return 0;
 
@@ -129,6 +131,7 @@ static void sctp_proc_exit(void)
        sctp_snmp_proc_exit();
        sctp_eps_proc_exit();
        sctp_assocs_proc_exit();
+       sctp_remaddr_proc_exit();
 
        if (proc_net_sctp) {
                proc_net_sctp = NULL;
@@ -650,7 +653,9 @@ static int sctp_inetaddr_event(struct notifier_block *this, unsigned long ev,
                spin_lock_bh(&sctp_local_addr_lock);
                list_for_each_entry_safe(addr, temp,
                                        &sctp_local_addr_list, list) {
-                       if (addr->a.v4.sin_addr.s_addr == ifa->ifa_local) {
+                       if (addr->a.sa.sa_family == AF_INET &&
+                                       addr->a.v4.sin_addr.s_addr ==
+                                       ifa->ifa_local) {
                                found = 1;
                                addr->valid = 0;
                                list_del_rcu(&addr->list);