]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Wed Feb 25 11:29:23 CST 2009 Pekka Pessi <first.last@nokia.com>
authorMichael Jerris <mike@jerris.com>
Wed, 25 Feb 2009 19:34:54 +0000 (19:34 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 25 Feb 2009 19:34:54 +0000 (19:34 +0000)
  * su_uniqueid.c: fixed seed array usage
  Ignore-this: b6e6a195f3f34abc2119a741f8b6f5e2

  Paper bags, anyone?

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12281 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/su/su_uniqueid.c

index 0a8b8876cf4d281eb50f0877c85a3d63addb84ab..9adaa23872695551cbb1fccca9774b91980247e9 100644 (file)
@@ -1 +1 @@
-Wed Feb 25 13:30:44 CST 2009
+Wed Feb 25 13:31:50 CST 2009
index f5f0f2c5f1554d10247cb96db19c3aabc3cbd6df..82d50f58e45808e323b5b89283f0c205b19cb6de 100644 (file)
@@ -136,11 +136,14 @@ static void init(void)
 {
   int i;
 
+#define N_SEED 32
+
 #if HAVE_INITSTATE
   /* Allow libsofia-sip-ua.so to unload. */
-  uint32_t *seed = calloc(32, sizeof(uint32_t));
+  uint32_t *seed = calloc(N_SEED, sizeof *seed);
 #else
-  static uint32_t seed[32] = { 0 };
+  static uint32_t _seed[N_SEED] = { 0 };
+  uint32_t *seed = _seed;
 #endif
   su_time_t now;
 
@@ -153,25 +156,25 @@ static void init(void)
 #endif /* HAVE_DEV_URANDOM */
 
   if (urandom) {
-    size_t len = fread(seed, sizeof seed, 1, urandom); (void)len;
+    size_t len = fread(seed, sizeof *seed, N_SEED, urandom); (void)len;
   }
   else {
-    for (i = 0; i < 16; i++) {
+    for (i = 0; i < N_SEED; i += 2) {
 #if HAVE_CLOCK_GETTIME
       struct timespec ts;
       (void)clock_gettime(CLOCK_REALTIME, &ts);
-      seed[2*i] ^= ts.tv_sec; seed[2*i+1] ^= ts.tv_nsec;
+      seed[i] ^= ts.tv_sec; seed[i + 1] ^= ts.tv_nsec;
 #endif
       su_time(&now);
-      seed[2*i] ^= now.tv_sec; seed[2*i+1] ^= now.tv_sec;
+      seed[i] ^= now.tv_sec; seed[i + 1] ^= now.tv_sec;
     }
 
-    seed[30] ^= getuid();
-    seed[31] ^= getpid();
+    seed[0] ^= getuid();
+    seed[1] ^= getpid();
   }
 
 #if HAVE_INITSTATE
-  initstate(seed[0] ^ seed[1], (char *)seed, 32 * sizeof(uint32_t));
+  initstate(seed[0] ^ seed[1], (void *)seed, N_SEED * (sizeof *seed));
 #else
   srand(seed[0] ^ seed[1]);
 #endif