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" <>
Cc: Osv Dev <>
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() {
        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 ( 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?


Nadav Har'El

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.