Author: csjp
Date: Mon Oct 13 18:44:59 2008
New Revision: 183837
URL: http://svn.freebsd.org/changeset/base/183837

Log:
  MFC change 182488
  
  Improve entropy in source port generation for libalias consumers.
  
  Approved by:  re (kib)

Modified:
  releng/6.4/sys/   (props changed)
  releng/6.4/sys/netinet/libalias/alias_db.c

Modified: releng/6.4/sys/netinet/libalias/alias_db.c
==============================================================================
--- releng/6.4/sys/netinet/libalias/alias_db.c  Mon Oct 13 18:42:25 2008        
(r183836)
+++ releng/6.4/sys/netinet/libalias/alias_db.c  Mon Oct 13 18:44:59 2008        
(r183837)
@@ -603,7 +603,7 @@ GetNewPort(struct libalias *la, struct a
                        port_sys = ntohs(port_net);
                } else {
                        /* First trial and all subsequent are random. */
-                       port_sys = random() & ALIAS_PORT_MASK;
+                       port_sys = arc4random() & ALIAS_PORT_MASK;
                        port_sys += ALIAS_PORT_BASE;
                        port_net = htons(port_sys);
                }
@@ -654,7 +654,7 @@ GetNewPort(struct libalias *la, struct a
                        }
 #endif
                }
-               port_sys = random() & ALIAS_PORT_MASK;
+               port_sys = arc4random() & ALIAS_PORT_MASK;
                port_sys += ALIAS_PORT_BASE;
                port_net = htons(port_sys);
        }
@@ -767,9 +767,9 @@ FindNewPortGroup(struct libalias *la,
 
                /* First trial and all subsequent are random. */
                if (align == FIND_EVEN_ALIAS_BASE)
-                       port_sys = random() & ALIAS_PORT_MASK_EVEN;
+                       port_sys = arc4random() & ALIAS_PORT_MASK_EVEN;
                else
-                       port_sys = random() & ALIAS_PORT_MASK;
+                       port_sys = arc4random() & ALIAS_PORT_MASK;
 
                port_sys += ALIAS_PORT_BASE;
        }
@@ -791,9 +791,9 @@ FindNewPortGroup(struct libalias *la,
 
                /* Find a new base to try */
                if (align == FIND_EVEN_ALIAS_BASE)
-                       port_sys = random() & ALIAS_PORT_MASK_EVEN;
+                       port_sys = arc4random() & ALIAS_PORT_MASK_EVEN;
                else
-                       port_sys = random() & ALIAS_PORT_MASK;
+                       port_sys = arc4random() & ALIAS_PORT_MASK;
 
                port_sys += ALIAS_PORT_BASE;
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to