On 2/10/2013 9:27 AM, Brian C. Lane wrote:
On Wed, Oct 02, 2013 at 01:00:43AM +1000, Jonathan Liu wrote:
+/* hack: use the ext2 uuid library to generate a reasonably random (hopefully
+ * with /dev/random) number.  Unfortunately, we can only use 4 bytes of it.
+ * We make sure to avoid returning zero which may be interpreted as no FAT
+ * serial number or no MBR signature.
+ */
+static inline uint32_t
+generate_random_uint32 (void)
+{
+       union {
+               uuid_t uuid;
+               uint32_t i;
+       } uu32;
+
+       do {
+               uuid_generate (uu32.uuid);
+       } while (uu32.i == 0);
I'd like to see a limit on this while with an error if it gets a zero
more than 3 times in a row.

I will just make it return 0xffffffff if the generated UUID is 0.
V4 patch submitted.

Regards,
Jonathan

Reply via email to