All of lore.kernel.org
 help / color / mirror / Atom feed
From: Niccolo Rigacci <niccolo@texnet.it>
To: linux-raid@vger.kernel.org
Subject: Re: Forcing a more random uuid (random seed bug)
Date: Wed, 2 Feb 2005 14:33:41 +0100	[thread overview]
Message-ID: <200502021433.42108.niccolo@texnet.it> (raw)
In-Reply-To: <200502011847.39444.niccolo@texnet.it>

> I get /dev/md5, /dev/md6, /dev/md7
> and /dev/md8 all with the same UUID!

It seems that there is a bug in mdadm: when generating the UUID for a 
volume, the random() function is called, but the random sequence is never 
initialized.

The result is that every volume created with mdadm has an uuid of:
6b8b4567:327b23c6:643c9869:66334873

See also Debian bug 292784 at
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=292784

I fixed the problem adding the following patch to mdadm.c, but please bear 
in mind that I'm totally unaware of mdadm code and quite naive in C 
programming:

$ diff -u mdadm.c.orig mdadm.c
--- mdadm.c.orig        2004-11-02 06:11:06.000000000 +0100
+++ mdadm.c     2005-02-02 14:27:55.000000000 +0100
@@ -86,6 +86,15 @@
        ident.super_minor= UnSet;
        ident.devices=0;

+        int my_fd;
+        unsigned int my_seed;
+        if ((my_fd = open("/dev/random", O_RDONLY)) != -1) {
+            if (read(my_fd, &my_seed, sizeof(my_seed)) == sizeof(my_seed)) 
{
+                srandom(my_seed);
+            }
+            close(my_fd);
+        }
+
        while ((option_index = -1) ,
               (opt=getopt_long(argc, argv,
                                short_options, long_options,




-- 
Niccolo Rigacci
http://www.texnet.it/

  reply	other threads:[~2005-02-02 13:33 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-01 17:47 Forcing a more random uuid Niccolo Rigacci
2005-02-02 13:33 ` Niccolo Rigacci [this message]
2005-02-22 23:55   ` Forcing a more random uuid (random seed bug) H. Peter Anvin
  -- strict thread matches above, loose matches on Subject: below --
2005-02-08 14:05 linux
2005-02-22 23:58 ` H. Peter Anvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200502021433.42108.niccolo@texnet.it \
    --to=niccolo@texnet.it \
    --cc=linux-raid@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.