[PATCH 10/10] Remove os_random() as it makes use of a weak PRNG, having previously refactored all its callers to use os_get_random(…) instead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Remove os_random() as it makes use of a weak PRNG, having previously
refactored all its callers to use os_get_random(…) instead. We should
avoid using this outright unless there is a compelling performance
justification to retain it. Such a justification does not exist for
the hostapd/wpa_supplicant. When marginal, insignificant performance
gains are equated against the benefit of removing a function that can
be subtly dangerous, we should err on the side of caution.

Signed-off-by: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
---
 src/utils/os.h          | 6 ------
 src/utils/os_internal.c | 6 ------
 src/utils/os_none.c     | 6 ------
 src/utils/os_unix.c     | 6 ------
 src/utils/os_win32.c    | 7 -------
 5 files changed, 31 deletions(-)

diff --git a/src/utils/os.h b/src/utils/os.h
index 9e496fb..08c97e0 100644
--- a/src/utils/os.h
+++ b/src/utils/os.h
@@ -165,12 +165,6 @@ void os_daemonize_terminate(const char *pid_file);
 int os_get_random(unsigned char *buf, size_t len);

 /**
- * os_random - Get pseudo random value (not necessarily very strong)
- * Returns: Pseudo random value
- */
-unsigned long os_random(void);
-
-/**
  * os_rel2abs_path - Get an absolute path for a file
  * @rel_path: Relative path to a file
  * Returns: Absolute path for the file or %NULL on failure
diff --git a/src/utils/os_internal.c b/src/utils/os_internal.c
index ed6eb3c..06b4e7f 100644
--- a/src/utils/os_internal.c
+++ b/src/utils/os_internal.c
@@ -139,12 +139,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }


-unsigned long os_random(void)
-{
-    return random();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
     char *buf = NULL, *cwd, *ret;
diff --git a/src/utils/os_none.c b/src/utils/os_none.c
index 0c3214d..523292f 100644
--- a/src/utils/os_none.c
+++ b/src/utils/os_none.c
@@ -61,12 +61,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }


-unsigned long os_random(void)
-{
-    return 0;
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
     return NULL; /* strdup(rel_path) can be used here */
diff --git a/src/utils/os_unix.c b/src/utils/os_unix.c
index 8f8dc5b..3ae5f8f 100644
--- a/src/utils/os_unix.c
+++ b/src/utils/os_unix.c
@@ -266,12 +266,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }


-unsigned long os_random(void)
-{
-    return random();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
     char *buf = NULL, *cwd, *ret;
diff --git a/src/utils/os_win32.c b/src/utils/os_win32.c
index dea27b9..6adcaf0 100644
--- a/src/utils/os_win32.c
+++ b/src/utils/os_win32.c
@@ -144,13 +144,6 @@ int os_get_random(unsigned char *buf, size_t len)
     return ret ? 0 : -1;
 }

-
-unsigned long os_random(void)
-{
-    return rand();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
     return _strdup(rel_path);
-- 
2.5.0
From 2acbbed9c111e4bd4272419fe31c2bdccdab0851 Mon Sep 17 00:00:00 2001
From: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
Date: Tue, 9 Feb 2016 16:18:39 +0000
Subject: [PATCH 10/10] Remove os_random() as it makes use of a weak
PRNG, having previously refactored all its callers to use
os_get_random(…) instead. We should avoid using this outright unless
there is a compelling performance justification to retain it. Such a
justification does not exist for the hostapd/wpa_supplicant. When
marginal, insignificant performance gains are equated against the
benefit of removing a function that can be subtly dangerous, we should
err on the side of caution.

Signed-off-by: Nick Lowe <nick.lowe@xxxxxxxxxxxx>
---
 src/utils/os.h          | 6 ------
 src/utils/os_internal.c | 6 ------
 src/utils/os_none.c     | 6 ------
 src/utils/os_unix.c     | 6 ------
 src/utils/os_win32.c    | 7 -------
 5 files changed, 31 deletions(-)

diff --git a/src/utils/os.h b/src/utils/os.h
index 9e496fb..08c97e0 100644
--- a/src/utils/os.h
+++ b/src/utils/os.h
@@ -165,12 +165,6 @@ void os_daemonize_terminate(const char *pid_file);
 int os_get_random(unsigned char *buf, size_t len);
 
 /**
- * os_random - Get pseudo random value (not necessarily very strong)
- * Returns: Pseudo random value
- */
-unsigned long os_random(void);
-
-/**
  * os_rel2abs_path - Get an absolute path for a file
  * @rel_path: Relative path to a file
  * Returns: Absolute path for the file or %NULL on failure
diff --git a/src/utils/os_internal.c b/src/utils/os_internal.c
index ed6eb3c..06b4e7f 100644
--- a/src/utils/os_internal.c
+++ b/src/utils/os_internal.c
@@ -139,12 +139,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }
 
 
-unsigned long os_random(void)
-{
-	return random();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
 	char *buf = NULL, *cwd, *ret;
diff --git a/src/utils/os_none.c b/src/utils/os_none.c
index 0c3214d..523292f 100644
--- a/src/utils/os_none.c
+++ b/src/utils/os_none.c
@@ -61,12 +61,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }
 
 
-unsigned long os_random(void)
-{
-	return 0;
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
 	return NULL; /* strdup(rel_path) can be used here */
diff --git a/src/utils/os_unix.c b/src/utils/os_unix.c
index 8f8dc5b..3ae5f8f 100644
--- a/src/utils/os_unix.c
+++ b/src/utils/os_unix.c
@@ -266,12 +266,6 @@ int os_get_random(unsigned char *buf, size_t len)
 }
 
 
-unsigned long os_random(void)
-{
-	return random();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
 	char *buf = NULL, *cwd, *ret;
diff --git a/src/utils/os_win32.c b/src/utils/os_win32.c
index dea27b9..6adcaf0 100644
--- a/src/utils/os_win32.c
+++ b/src/utils/os_win32.c
@@ -144,13 +144,6 @@ int os_get_random(unsigned char *buf, size_t len)
 	return ret ? 0 : -1;
 }
 
-
-unsigned long os_random(void)
-{
-	return rand();
-}
-
-
 char * os_rel2abs_path(const char *rel_path)
 {
 	return _strdup(rel_path);
-- 
2.5.0

_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap

[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux