summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2011-03-18 18:38:14 +0100
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2012-06-15 14:00:27 +0200
commitf17de52212da8f551f41b7cb132e86f686de2c40 (patch)
tree2f9d59f0a065bad82730558f55873482eca4ebee
parent0aa00ea102edfe12978e3f1c8eb28e63ea9171b6 (diff)
stdlib.h, arc4random.c: fix arc4random return type to u_int32_t
Change uint32_t to u_int32_t and uint8_t to u_int8_t, removing completely the dependency on stdint.h. Based on patch by Timo Teraes <timo.teras@iki.fi>. His comment: This also fixes a major bug that stdlib.h includes stdint.h. Things might go very wrong because stdint.h has conditional defines and if stdlib.h is included before #define's for stdint.h we end up missing things and breaking builds (e.g. openjdk). Signed-off-by: Timo Teraes <timo.teras@iki.fi> Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-rw-r--r--include/stdlib.h4
-rw-r--r--libc/stdlib/arc4random.c18
2 files changed, 11 insertions, 11 deletions
diff --git a/include/stdlib.h b/include/stdlib.h
index fdefe4aa4..f0a21697f 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -910,8 +910,8 @@ extern int getloadavg (double __loadavg[], int __nelem)
#endif
#ifdef __UCLIBC_HAS_ARC4RANDOM__
-#include <stdint.h>
-extern uint32_t arc4random(void);
+# include <sys/types.h>
+extern u_int32_t arc4random(void);
extern void arc4random_stir(void);
extern void arc4random_addrandom(unsigned char *, int);
#endif
diff --git a/libc/stdlib/arc4random.c b/libc/stdlib/arc4random.c
index 7a8359ab0..55ea7e218 100644
--- a/libc/stdlib/arc4random.c
+++ b/libc/stdlib/arc4random.c
@@ -39,9 +39,9 @@
struct arc4_stream {
- uint8_t i;
- uint8_t j;
- uint8_t s[256];
+ u_int8_t i;
+ u_int8_t j;
+ u_int8_t s[256];
};
static smallint rs_initialized;
@@ -58,10 +58,10 @@ arc4_init(struct arc4_stream *as)
as->j = 0;
}
-static __inline__ uint8_t
+static __inline__ u_int8_t
arc4_getbyte(struct arc4_stream *as)
{
- uint8_t si, sj;
+ u_int8_t si, sj;
as->i = (as->i + 1);
si = as->s[as->i];
@@ -76,7 +76,7 @@ static __inline__ void
arc4_addrandom(struct arc4_stream *as, u_char *dat, int datlen)
{
int n;
- uint8_t si;
+ u_int8_t si;
as->i--;
for (n = 0; n < 256; n++) {
@@ -139,10 +139,10 @@ arc4_stir(struct arc4_stream *as)
arc4_getbyte(as);
}
-static __inline__ uint32_t
+static __inline__ u_int32_t
arc4_getword(struct arc4_stream *as)
{
- uint32_t val;
+ u_int32_t val;
val = arc4_getbyte(as) << 24;
val |= arc4_getbyte(as) << 16;
val |= arc4_getbyte(as) << 8;
@@ -169,7 +169,7 @@ arc4random_addrandom(u_char *dat, int datlen)
arc4_addrandom(&rs, dat, datlen);
}
-uint32_t
+u_int32_t
arc4random(void)
{
if (!rs_initialized)