Source-Changes-HG archive

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

[src/trunk]: src/external/bsd/nvi/dist/common Do not cause Undefined Behavior...



details:   https://anonhg.NetBSD.org/src/rev/060b90f347ab
branches:  trunk
changeset: 323484:060b90f347ab
user:      kamil <kamil%NetBSD.org@localhost>
date:      Sat Jun 16 18:54:52 2018 +0000

description:
Do not cause Undefined Behavior in vi(1)

Replace unportable manual calculation of alignof() that causes UB, with
a GCC extension __alignof__.

This fixes a problem reported by UBSan with the MKSANITIZER distribution.

diffstat:

 external/bsd/nvi/dist/common/log.c |  6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diffs (27 lines):

diff -r 13cba424d9f3 -r 060b90f347ab external/bsd/nvi/dist/common/log.c
--- a/external/bsd/nvi/dist/common/log.c        Sat Jun 16 18:51:36 2018 +0000
+++ b/external/bsd/nvi/dist/common/log.c        Sat Jun 16 18:54:52 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: log.c,v 1.3 2014/01/26 21:43:45 christos Exp $ */
+/*     $NetBSD: log.c,v 1.4 2018/06/16 18:54:52 kamil Exp $ */
 /*-
  * Copyright (c) 1992, 1993, 1994
  *     The Regents of the University of California.  All rights reserved.
@@ -16,7 +16,7 @@
 static const char sccsid[] = "Id: log.c,v 10.26 2002/03/02 23:12:13 skimo Exp  (Berkeley) Date: 2002/03/02 23:12:13 ";
 #endif /* not lint */
 #else
-__RCSID("$NetBSD: log.c,v 1.3 2014/01/26 21:43:45 christos Exp $");
+__RCSID("$NetBSD: log.c,v 1.4 2018/06/16 18:54:52 kamil Exp $");
 #endif
 
 #include <sys/types.h>
@@ -90,7 +90,7 @@
     char    data[sizeof(u_char) /* type */ + sizeof(db_recno_t)];
     CHAR_T  str[1];
 } log_t;
-#define CHAR_T_OFFSET ((char *)(((log_t*)0)->str) - (char *)0)
+#define CHAR_T_OFFSET (__alignof__(log_t))
 
 /*
  * log_init --



Home | Main Index | Thread Index | Old Index