Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Jan 2004 09:53:22 +0100
From:      "Ralf S. Engelschall" <rse@engelschall.com>
To:        Marcel Moolenaar <marcel@xcllnt.net>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/kern kern_uuid.c
Message-ID:  <20040123085322.GA89499@engelschall.com>
In-Reply-To: <20040122232022.GA77798@ns1.xcllnt.net>
References:  <200401221334.i0MDYB1K018137@repoman.freebsd.org> <20040122232022.GA77798@ns1.xcllnt.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 22, 2004, Marcel Moolenaar wrote:

> On Thu, Jan 22, 2004 at 05:34:11AM -0800, Ralf S. Engelschall wrote:
> > rse         2004/01/22 05:34:11 PST
> >
> >   FreeBSD src repository
> >
> >   Modified files:
> >     sys/kern             kern_uuid.c
> >   Log:
> >   Fix generation of random multicast MAC address.
>
> An excellent catch and an outstanding commit log. Chapeau!

Thanks. You can image how surprised and confused I was during
discovering this standards bug. Especially, because all(!) six
freely available UUID implementations (FreeBSD's kern_uuid.c, Linux'
e2fsprogs's libuuid, Perl's Data::UUID, Apache's apt-util, Java's JUG
and Wine's UUID generator) I evaluated also have inherited this bug
similarly. Three of them (our FreeBSD one here, the Apache APR-Util and
the Perl Data::UUID) I've now already fixed myself. For the others I've
sent patches to the authors.

I discovered this bug during development of my portable UUID toolkit
OSSP uuid (see http://www.ossp.org/pkg/lib/uuid/). Once I had the UUID
decoding functionality in place ("uuid -d"), I recognized that the
MAC addresses in all v1 UUIDs generated with other libraries were not
always decoded as "multicast". So I was puzzled whether I decoded it
incorrectly or MAC addresses were generated incorrectly. I digged deeper
and had to found out that the bug was already in the reference code of
the expired UUID draft.

Interestingly, the DCE 1.1 and ISO guys are lucky, they do not deal with
the fact that an IEEE 802 MAC address cannot be determined at all and so
do not mention how to generate a random multicast MAC address instead ;-)

                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com



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