Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 21 Sep 2014 14:45:57 +0300
From: "Nadav Har'El" <nyh@...udius-systems.com>
To: musl@...ts.openwall.com
Cc: Osv Dev <osv-dev@...glegroups.com>
Subject: drand48() gives wrong sequence?

Hi, I ran the following trivial program on both glibc (on Linux), and Musl
(on OSv).

#include <stdio.h>
#include <stdlib.h>

int main() {
        srand48(12345);
        printf("%ld %ld %ld\n", lrand48(), lrand48(), lrand48());
}

Unfortunately, the sequence did not come out the same: On glibc+Linux I got:

     444188209 1973930609 483889296

But on OSv+Musl I got:

     1737082417 264424049 61706384

I expected to get the same sequence because both the drand48(3) man-page on
Linux and the drand48 specification in Posix (
http://pubs.opengroup.org/onlinepubs/9699919799/functions/drand48.html) are
pretty explicit about the formulas that should be used. I also looked at
the Musl code quickly, and it does seem to use these formulas.

Any ideas why I'm getting the wrong sequence?

Thanks,
Nadav.

-- 
Nadav Har'El
nyh@...udius-systems.com

Content of type "text/html" skipped

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.