Hi,

On 25-07-17 17:07, David Sommerseth wrote:
> The init_random_seed() function is only used by the init_static() in
> init.c.  As this function was pretty basic and it is only being called
> once, it was merged into init_static() instead of keeping it as a separate
> function.
> 
> (I agree that calling functions often makes the code more readable, but
> I would rather see that as a part of cleaning up the whole init_static()
> function - in fact when moving all "unit tests" in init_static() to cmocka,
> it will not be too bad in the end.)
> 
> Signed-off-by: David Sommerseth <[email protected]>
> ---
>  src/openvpn/init.c | 17 +++++++++++++++--
>  src/openvpn/misc.c | 19 -------------------
>  src/openvpn/misc.h |  3 ---
>  3 files changed, 15 insertions(+), 24 deletions(-)
> 
> diff --git a/src/openvpn/init.c b/src/openvpn/init.c
> index bc3b81e3..860df774 100644
> --- a/src/openvpn/init.c
> +++ b/src/openvpn/init.c
> @@ -610,6 +610,7 @@ init_port_share(struct context *c)
>  
>  #endif /* if PORT_SHARE */
>  
> +
>  bool
>  init_static(void)
>  {
> @@ -619,8 +620,20 @@ init_static(void)
>      crypto_init_dmalloc();
>  #endif
>  
> -    init_random_seed();         /* init random() function, only used as
> -                                 * source for weak random numbers */
> +
> +    /*
> +     * Initialize random number seed.  random() is only used
> +     * when "weak" random numbers are acceptable.
> +     * SSL library routines are always used when cryptographically
> +     * strong random numbers are required.
> +     */
> +    struct timeval tv;
> +    if (!gettimeofday(&tv, NULL))
> +    {
> +        const unsigned int seed = (unsigned int) tv.tv_sec ^ tv.tv_usec;
> +        srandom(seed);
> +    }
> +
>      error_reset();              /* initialize error.c */
>      reset_check_status();       /* initialize status check code in socket.c 
> */
>  
> diff --git a/src/openvpn/misc.c b/src/openvpn/misc.c
> index 8a76bba8..aff1bb2e 100644
> --- a/src/openvpn/misc.c
> +++ b/src/openvpn/misc.c
> @@ -405,25 +405,6 @@ openvpn_popen(const struct argv *a,  const struct 
> env_set *es)
>  
>  
>  /*
> - * Initialize random number seed.  random() is only used
> - * when "weak" random numbers are acceptable.
> - * OpenSSL routines are always used when cryptographically
> - * strong random numbers are required.
> - */
> -
> -void
> -init_random_seed(void)
> -{
> -    struct timeval tv;
> -
> -    if (!gettimeofday(&tv, NULL))
> -    {
> -        const unsigned int seed = (unsigned int) tv.tv_sec ^ tv.tv_usec;
> -        srandom(seed);
> -    }
> -}
> -
> -/*
>   * Set environmental variable (int or string).
>   *
>   * On Posix, we use putenv for portability,
> diff --git a/src/openvpn/misc.h b/src/openvpn/misc.h
> index 734e679c..a7aa7622 100644
> --- a/src/openvpn/misc.h
> +++ b/src/openvpn/misc.h
> @@ -100,9 +100,6 @@ void set_std_files_to_null(bool stdin_only);
>  extern int inetd_socket_descriptor;
>  void save_inetd_socket_descriptor(void);
>  
> -/* init random() function, only used as source for weak random numbers, when 
> !ENABLE_CRYPTO */
> -void init_random_seed(void);
> -
>  /* set/delete environmental variable */
>  void setenv_str_ex(struct env_set *es,
>                     const char *name,
> 

I think I would have preferred to keep the function, but I can live with
this approach.  So, ACK.

-Steffan

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to