diff options
Diffstat (limited to 'source3/lib/genrand.c')
-rw-r--r-- | source3/lib/genrand.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/source3/lib/genrand.c b/source3/lib/genrand.c index 57314c55df..076a2fd518 100644 --- a/source3/lib/genrand.c +++ b/source3/lib/genrand.c @@ -156,7 +156,7 @@ static int do_reseed(bool use_fd, int fd) Interface to the (hopefully) good crypto random number generator. ********************************************************************/ -void generate_random_buffer( unsigned char *out, int len) +void generate_random_buffer(uint8_t *out, int len) { static int urand_fd = -1; unsigned char md4_buf[64]; @@ -205,15 +205,11 @@ void generate_random_buffer( unsigned char *out, int len) static char c_list[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+_-#.,"; -char *generate_random_str(size_t len) +char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len) { - static unsigned char retstr[256]; + unsigned char *retstr = talloc_zero_array(mem_ctx, unsigned char, len); size_t i; - memset(retstr, '\0', sizeof(retstr)); - - if (len > sizeof(retstr)-1) - len = sizeof(retstr) -1; generate_random_buffer( retstr, len); for (i = 0; i < len; i++) retstr[i] = c_list[ retstr[i] % (sizeof(c_list)-1) ]; |