Author: rwatson
Date: Sun Apr 19 22:04:29 2009
New Revision: 191283
URL: http://svn.freebsd.org/changeset/base/191283

Log:
  Lock interface address list when building a reply to NGM_EIFACE_GET_IFADDRS
  messages in ng_eiface.
  
  MFC after:    2 weeks

Modified:
  head/sys/netgraph/ng_eiface.c

Modified: head/sys/netgraph/ng_eiface.c
==============================================================================
--- head/sys/netgraph/ng_eiface.c       Sun Apr 19 22:02:14 2009        
(r191282)
+++ head/sys/netgraph/ng_eiface.c       Sun Apr 19 22:04:29 2009        
(r191283)
@@ -452,10 +452,12 @@ ng_eiface_rcvmsg(node_p node, item_p ite
 
                        /* Determine size of response and allocate it */
                        buflen = 0;
+                       IF_ADDR_LOCK(ifp);
                        TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
                                buflen += SA_SIZE(ifa->ifa_addr);
                        NG_MKRESPONSE(resp, msg, buflen, M_NOWAIT);
                        if (resp == NULL) {
+                               IF_ADDR_UNLOCK(ifp);
                                error = ENOMEM;
                                break;
                        }
@@ -474,6 +476,7 @@ ng_eiface_rcvmsg(node_p node, item_p ite
                                ptr += len;
                                buflen -= len;
                        }
+                       IF_ADDR_UNLOCK(ifp);
                        break;
                    }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to