From c19a4d8e475e9d51a75453e36ddf7463735e75e6 Mon Sep 17 00:00:00 2001 From: kettenis <> Date: Thu, 1 Aug 2013 19:42:08 +0000 Subject: Add linker warnings for rand() and random() and various related functions. ok deraadt@ --- src/lib/libc/stdlib/rand.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib/libc/stdlib/rand.c') diff --git a/src/lib/libc/stdlib/rand.c b/src/lib/libc/stdlib/rand.c index 0f9c100807..6860dd4f71 100644 --- a/src/lib/libc/stdlib/rand.c +++ b/src/lib/libc/stdlib/rand.c @@ -39,14 +39,29 @@ rand_r(u_int *seed) return (*seed % ((u_int)RAND_MAX + 1)); } +#if defined(APIWARN) +__warn_references(rand_r, + "warning: rand_r() isn't random; consider using arc4random()"); +#endif + int rand(void) { return (rand_r(&next)); } +#if defined(APIWARN) +__warn_references(rand, + "warning: rand() isn't random; consider using arc4random()"); +#endif + void srand(u_int seed) { next = seed; } + +#if defined(APIWARN) +__warn_references(srand, + "warning: srand() seed choices are invariably poor"); +#endif -- cgit v1.2.3-55-g6feb