Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 11 Nov 2001 23:40:09 +0200
From:      devotee <sixthfish@gmx.net>
To:        freebsd-test@freebsd.org
Subject:   strange rand() behaviuor
Message-ID:  <20011111234009.A2197@berloga.volodya.artm.org>

next in thread | raw e-mail | index | archive | help
Hi, list !
My old RSA-code failed to work in proper maner under FreeBSD 4.4. I spent 2 hours, and it seems FreeBSD version of rand() or libc or gcc or whatever have some bugs in it. Here's sample code:

#include <stdio.h>
int main ()
{
        int i,j;
        for (i=0; i<256*10; i++) {
           j = rand();
           if (!(i%256)) printf ("i=%5d j=0x%08X j%%256=0x%02X\n",i,j,j%256);
	}
	return 0;
}

It just prints each 256th random number from rand();
Here's my output:

	bash-2.05$ gcc randtest.c -o randtest
	bash-2.05$ ./randtest
	i=    0 j=0x41C67EA6 j%256=0xA6
	i=  256 j=0x32AA09A6 j%256=0xA6
	i=  512 j=0x559994A6 j%256=0xA6
	i=  768 j=0x5A951FA6 j%256=0xA6
	i= 1024 j=0x719CAAA6 j%256=0xA6
	i= 1280 j=0x4AB035A6 j%256=0xA6
	i= 1536 j=0x15CFC0A6 j%256=0xA6
	i= 1792 j=0x02FB4BA6 j%256=0xA6
	i= 2048 j=0x4232D6A6 j%256=0xA6
	i= 2304 j=0x037661A6 j%256=0xA6

As you can see, last octet of each rand value is the same !!!
Under debian linux same code outputs:
	devotee@nerve:~$ gcc randtest.c -o randtest
	devotee@nerve:~$ ./randtest
	i=    0 j=0x6B8B4567 j%256=0x67
	i=  256 j=0x5D888A08 j%256=0x08
	i=  512 j=0x4695AE95 j%256=0x95
	i=  768 j=0x2C06DCF3 j%256=0xF3
	i= 1024 j=0x170EB52B j%256=0x2B
	i= 1280 j=0x22317590 j%256=0x90
	i= 1536 j=0x1E1C83A1 j%256=0xA1
	i= 1792 j=0x3F754C7B j%256=0x7B
	i= 2048 j=0x10A93FB7 j%256=0xB7
	i= 2304 j=0x12130ECA j%256=0xCA
(that's what i expected to see under freebsd)	

What's wrong ???

-- 
devotee, http://volodya.artm.org
Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-test" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011111234009.A2197>