Fixed undefined behavior sandbox/vbarinov/ubsan
authorSlava Barinov <v.barinov@samsung.com>
Mon, 22 Aug 2016 13:15:13 +0000 (16:15 +0300)
committerSlava Barinov <v.barinov@samsung.com>
Wed, 24 Aug 2016 10:58:09 +0000 (13:58 +0300)
Signed-off-by: Slava Barinov <v.barinov@samsung.com>
packaging/coreutils.spec
src/ls.c

index b4f786af3f6dc47439175a251b9aaa6de28a058d..9015136d0c47cb3a20a99f7bc9875048c4bb3c31 100644 (file)
@@ -49,6 +49,8 @@ the old GNU fileutils, sh-utils, and textutils packages.
 %setup -q -b 1 -n coreutils-%{version}
 
 %build
+/usr/bin/gcc-unforce-options
+/usr/bin/gcc-force-options -fsanitize=alignment,bool,enum,float-cast-overflow,float-divide-by-zero,integer-divide-by-zero,nonnull-attribute,null,object-size,return,returns-nonnull-attribute,signed-integer-overflow,unreachable
 cp %{SOURCE1001} .
 
 export CFLAGS=" -fpie"
index ca1858e5ed23048b877c80d90510b1c33249ab36..51d90ba7a2879b7cd82f6acea8404b651c453dd9 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -2512,7 +2512,7 @@ file_ignored (char const *name)
 static uintmax_t
 unsigned_file_size (off_t size)
 {
-  return size + (size < 0) * ((uintmax_t) OFF_T_MAX - OFF_T_MIN + 1);
+  return size + (size < 0) * ((uintmax_t) OFF_T_MAX - (uintmax_t) OFF_T_MIN + 1);
 }
 
 /* Enter and remove entries in the table `cwd_file'.  */