Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/fs/udf Avoid undefined behavior in ecma167-udf.h



details:   https://anonhg.NetBSD.org/src/rev/2d7a517b9b73
branches:  trunk
changeset: 324880:2d7a517b9b73
user:      kamil <kamil%NetBSD.org@localhost>
date:      Wed Jul 25 19:56:56 2018 +0000

description:
Avoid undefined behavior in ecma167-udf.h

Define the UDF_EXT_* symbols as unsigned values.
This prevents undefined behavior of altering the signedness bit in a part
of them. Swap the remaining symbols to unsigned values to keep the
consistency.

Required by GCC when building with Undefined Behavior Sanitizer.

diffstat:

 sys/fs/udf/ecma167-udf.h |  19 +++++++++----------
 1 files changed, 9 insertions(+), 10 deletions(-)

diffs (37 lines):

diff -r 31189ecc64df -r 2d7a517b9b73 sys/fs/udf/ecma167-udf.h
--- a/sys/fs/udf/ecma167-udf.h  Wed Jul 25 19:15:19 2018 +0000
+++ b/sys/fs/udf/ecma167-udf.h  Wed Jul 25 19:56:56 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ecma167-udf.h,v 1.14 2011/07/07 17:45:38 reinoud Exp $ */
+/* $NetBSD: ecma167-udf.h,v 1.15 2018/07/25 19:56:56 kamil Exp $ */
 
 /*-
  * Copyright (c) 2003, 2004, 2005, 2006, 2008, 2009
@@ -203,14 +203,14 @@
 
 
 /* short/long/ext extent have flags encoded in length */
-#define UDF_EXT_ALLOCATED              (0<<30)
-#define UDF_EXT_FREED                  (1<<30)
-#define UDF_EXT_ALLOCATED_BUT_NOT_USED (1<<30)
-#define UDF_EXT_FREE                   (2<<30)
-#define UDF_EXT_REDIRECT               (3<<30)
-#define UDF_EXT_FLAGS(len) ((len) & (3<<30))
-#define UDF_EXT_LEN(len)   ((len) & ((1<<30)-1))
-#define UDF_EXT_MAXLEN     ((1<<30)-1)
+#define UDF_EXT_ALLOCATED              (0U<<30)
+#define UDF_EXT_FREED                  (1U<<30)
+#define UDF_EXT_ALLOCATED_BUT_NOT_USED (1U<<30)
+#define UDF_EXT_FREE                   (2U<<30)
+#define UDF_EXT_REDIRECT               (3U<<30)
+#define UDF_EXT_FLAGS(len) ((len) & (3U<<30))
+#define UDF_EXT_LEN(len)   ((len) & ((1U<<30)-1))
+#define UDF_EXT_MAXLEN     ((1U<<30)-1)
 
 
 /* Character set spec [1/7.2.1] */
@@ -832,4 +832,3 @@
 
 
 #endif /* !_FS_UDF_ECMA167_UDF_H_ */
-



Home | Main Index | Thread Index | Old Index