Module Name:    src
Committed By:   reinoud
Date:           Fri Jan  2 21:01:12 UTC 2015

Modified Files:
        src/sbin/newfs_udf: udf_write.c

Log Message:
Fix volumesetname to comply to UDF 2.01 [2.2.2.5]


To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/sbin/newfs_udf/udf_write.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/newfs_udf/udf_write.c
diff -u src/sbin/newfs_udf/udf_write.c:1.8 src/sbin/newfs_udf/udf_write.c:1.9
--- src/sbin/newfs_udf/udf_write.c:1.8	Sun Aug 25 14:13:47 2013
+++ src/sbin/newfs_udf/udf_write.c	Fri Jan  2 21:01:12 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_write.c,v 1.8 2013/08/25 14:13:47 reinoud Exp $ */
+/* $NetBSD: udf_write.c,v 1.9 2015/01/02 21:01:12 reinoud Exp $ */
 
 /*
  * Copyright (c) 2006, 2008, 2013 Reinoud Zandijk
@@ -30,7 +30,7 @@
 #endif
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: udf_write.c,v 1.8 2013/08/25 14:13:47 reinoud Exp $");
+__RCSID("$NetBSD: udf_write.c,v 1.9 2015/01/02 21:01:12 reinoud Exp $");
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -317,6 +317,7 @@ udf_derive_format(int req_enable, int re
 int
 udf_proces_names(void)
 {
+	struct timeval time_of_day;
 	uint32_t primary_nr;
 	uint64_t volset_nr;
 
@@ -335,8 +336,9 @@ udf_proces_names(void)
 		if (mmc_discinfo.disc_flags & MMC_DFLAGS_BARCODEVALID) {
 			volset_nr = mmc_discinfo.disc_barcode;
 		} else {
-			volset_nr  =  (uint32_t) random();
-			volset_nr |= ((uint64_t) random()) << 32;
+			(void)gettimeofday(&time_of_day, NULL);
+			volset_nr  =  (uint64_t) random();
+			volset_nr |= ((uint64_t) time_of_day.tv_sec) << 32;
 		}
 		context.volset_name = calloc(128,1);
 		sprintf(context.volset_name, "%016"PRIx64, volset_nr);

Reply via email to