acr4random env var propagation fix (#10332)

This commit is contained in:
David CARLIER 2018-06-13 00:01:46 +01:00 committed by radare
parent 34a88a9baa
commit b907cab694
6 changed files with 10 additions and 8 deletions

2
configure vendored
View File

@ -580,7 +580,7 @@ done
do_remove do_remove
echo echo
echo "Final report:" echo "Final report:"
for A in PREFIX HAVE_LIB_GMP HAVE_OPENSSL USE_CAPSTONE HAVE_FORK VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC USEROSTYPE LIBVERSION BUILD HOST TARGET ; do # REPORT for A in PREFIX HAVE_LIB_GMP HAVE_ARC4RANDOM_UNIFORM HAVE_OPENSSL USE_CAPSTONE HAVE_FORK VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC USEROSTYPE LIBVERSION BUILD HOST TARGET ; do # REPORT
eval VAL="\$${A}" eval VAL="\$${A}"
[ -z "${VAL}" ] && VAL="(null)" [ -z "${VAL}" ] && VAL="(null)"
echo " - ${A} = ${VAL}" echo " - ${A} = ${VAL}"

View File

@ -55,7 +55,7 @@ IFAND HAVE_LIB_Z USE_ZIP {
ARG_WITHOUT WITH_GPL gpl do not build GPL code (grub, cxx, ... ) ; ARG_WITHOUT WITH_GPL gpl do not build GPL code (grub, cxx, ... ) ;
CHKDECL sys/personality.h ADDR_NO_RANDOMIZE CHKDECL sys/personality.h ADDR_NO_RANDOMIZE
CHKFNC c arc4random_buf CHKFNC c arc4random_uniform
(( TODO must deprecate (( TODO must deprecate
CHKLIB gmp CHKLIB gmp
@ -138,7 +138,7 @@ IFEQ LIBVERSION xxx ; {
} }
REPORT PREFIX HAVE_LIB_GMP HAVE_OPENSSL USE_CAPSTONE HAVE_FORK REPORT PREFIX HAVE_LIB_GMP HAVE_OPENSSL USE_CAPSTONE HAVE_FORK
VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC HAVE_ARC4RANDOM_UNIFORM
USEROSTYPE LIBVERSION BUILD HOST TARGET ; USEROSTYPE LIBVERSION BUILD HOST TARGET ;
(( TODO: Add the rest of .pc files here.. add a rule for acr? )) (( TODO: Add the rest of .pc files here.. add a rule for acr? ))

View File

@ -5,6 +5,7 @@
#define DEBUGGER @DEBUGGER@ #define DEBUGGER @DEBUGGER@
#define HAVE_DECL_ADDR_NO_RANDOMIZE @HAVE_DECL_ADDR_NO_RANDOMIZE@ #define HAVE_DECL_ADDR_NO_RANDOMIZE @HAVE_DECL_ADDR_NO_RANDOMIZE@
#define HAVE_ARC4RANDOM_UNIFORM @HAVE_ARC4RANDOM_UNIFORM@
#if __WINDOWS__ || __CYGWIN__ || MINGW32 || _MSC_VER || CUTTER #if __WINDOWS__ || __CYGWIN__ || MINGW32 || _MSC_VER || CUTTER
#define R2_PREFIX "." #define R2_PREFIX "."

View File

@ -5,6 +5,7 @@
#define DEBUGGER @DEBUGGER@ #define DEBUGGER @DEBUGGER@
#define HAVE_DECL_ADDR_NO_RANDOMIZE @HAVE_DECL_ADDR_NO_RANDOMIZE@ #define HAVE_DECL_ADDR_NO_RANDOMIZE @HAVE_DECL_ADDR_NO_RANDOMIZE@
#define HAVE_ARC4RANDOM_UNIFORM @HAVE_ARC4RANDOM_UNIFORM@
#define R2_PREFIX "@PREFIX@" #define R2_PREFIX "@PREFIX@"
#define R2_LIBDIR "@LIBDIR@" #define R2_LIBDIR "@LIBDIR@"

View File

@ -50,7 +50,7 @@ typedef ut64 (*RNumCallback)(struct r_num_t *self, const char *str, int *ok);
typedef const char *(*RNumCallback2)(struct r_num_t *self, ut64, int *ok); typedef const char *(*RNumCallback2)(struct r_num_t *self, ut64, int *ok);
void r_srand(int seed); void r_srand(int seed);
int r_rand(void); int r_rand(int mod);
R_API RNum *r_num_new(RNumCallback cb, RNumCallback2 cb2, void *ptr); R_API RNum *r_num_new(RNumCallback cb, RNumCallback2 cb2, void *ptr);
R_API void r_num_free(RNum *num); R_API void r_num_free(RNum *num);

View File

@ -18,11 +18,11 @@ void r_srand (int seed) {
#endif #endif
} }
int r_rand (void) { int r_rand (int mod) {
#if HAVE_ARC4RANDOM_UNIFORM #if HAVE_ARC4RANDOM_UNIFORM
return (int)arc4random (); return (int)arc4random_uniform (mod);
#else #else
return rand (); return rand ()%mod;
#endif #endif
} }
@ -39,7 +39,7 @@ R_API int r_num_rand(int max) {
if (!max) { if (!max) {
max = 1; max = 1;
} }
return r_rand ()%max; return r_rand (max);
} }
R_API void r_num_minmax_swap(ut64 *a, ut64 *b) { R_API void r_num_minmax_swap(ut64 *a, ut64 *b) {