Author: tuexen
Date: Sun Nov 13 11:53:18 2011
New Revision: 227486
URL: http://svn.freebsd.org/changeset/base/227486

Log:
  Don't copy uninitialized memory. Also simplify the comparison
  of interface names.
  
  MFC after: 3 days.

Modified:
  head/sys/netinet/sctp_pcb.c

Modified: head/sys/netinet/sctp_pcb.c
==============================================================================
--- head/sys/netinet/sctp_pcb.c Sun Nov 13 10:28:01 2011        (r227485)
+++ head/sys/netinet/sctp_pcb.c Sun Nov 13 11:53:18 2011        (r227486)
@@ -559,9 +559,9 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, vo
                atomic_add_int(&vrf->refcount, 1);
                sctp_ifnp->ifn_mtu = SCTP_GATHER_MTU_FROM_IFN_INFO(ifn, 
ifn_index, addr->sa_family);
                if (if_name != NULL) {
-                       memcpy(sctp_ifnp->ifn_name, if_name, SCTP_IFNAMSIZ);
+                       snprintf(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", 
if_name);
                } else {
-                       memcpy(sctp_ifnp->ifn_name, "unknown", min(7, 
SCTP_IFNAMSIZ));
+                       snprintf(sctp_ifnp->ifn_name, SCTP_IFNAMSIZ, "%s", 
"unknown");
                }
                hash_ifn_head = &SCTP_BASE_INFO(vrf_ifn_hash)[(ifn_index & 
SCTP_BASE_INFO(vrf_ifn_hashmark))];
                LIST_INIT(&sctp_ifnp->ifalist);
@@ -768,19 +768,9 @@ sctp_del_addr_from_vrf(uint32_t vrf_id, 
                         * panda who might recycle indexes fast.
                         */
                        if (if_name) {
-                               int len1, len2;
-
-                               len1 = min(SCTP_IFNAMSIZ, strlen(if_name));
-                               len2 = min(SCTP_IFNAMSIZ, 
strlen(sctp_ifap->ifn_p->ifn_name));
-                               if (len1 && len2 && (len1 == len2)) {
-                                       /* we can compare them */
-                                       if (strncmp(if_name, 
sctp_ifap->ifn_p->ifn_name, len1) == 0) {
-                                               /*
-                                                * They match its a correct
-                                                * delete
-                                                */
-                                               valid = 1;
-                                       }
+                               if (strncmp(if_name, 
sctp_ifap->ifn_p->ifn_name, SCTP_IFNAMSIZ) == 0) {
+                                       /* They match its a correct delete */
+                                       valid = 1;
                                }
                        }
                        if (!valid) {
_______________________________________________
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