Module Name:    src
Committed By:   mrg
Date:           Tue Feb 19 00:34:50 UTC 2019

Modified Files:
        src/sys/arch/mac68k/mac68k: intr.c

Log Message:
convert 'extern long intrnames' to 'extern char intrnames[MAX_INAME_LENGTH]'.
also, assert that MAX_INAME_LENGTH is not larger than eintrnames - intrnames.

fixes gcc 7's object size checker checks.  tested by martin@.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/mac68k/mac68k/intr.c

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

Modified files:

Index: src/sys/arch/mac68k/mac68k/intr.c
diff -u src/sys/arch/mac68k/mac68k/intr.c:1.29 src/sys/arch/mac68k/mac68k/intr.c:1.30
--- src/sys/arch/mac68k/mac68k/intr.c:1.29	Mon Dec 20 00:25:36 2010
+++ src/sys/arch/mac68k/mac68k/intr.c	Tue Feb 19 00:34:50 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: intr.c,v 1.29 2010/12/20 00:25:36 matt Exp $	*/
+/*	$NetBSD: intr.c,v 1.30 2019/02/19 00:34:50 mrg Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.29 2010/12/20 00:25:36 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: intr.c,v 1.30 2019/02/19 00:34:50 mrg Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -100,9 +100,9 @@ void	intr_computeipl(void);
 void
 intr_init(void)
 {
-	extern long	intrnames;
+	extern char	intrnames[MAX_INAME_LENGTH];
+	extern char	eintrnames[] __diagused;
 	const char	*inames;
-	char		*g_inames;
 
 	ipl2psl_table[IPL_NONE]       = 0;
 	ipl2psl_table[IPL_SOFTCLOCK]  = PSL_S|PSL_IPL1;
@@ -111,7 +111,6 @@ intr_init(void)
 	ipl2psl_table[IPL_SOFTBIO]    = PSL_S|PSL_IPL1;
 	ipl2psl_table[IPL_HIGH]       = PSL_S|PSL_IPL7;
 
-	g_inames = (char *) &intrnames;
 	if (mac68k_machine.aux_interrupts) {
 		inames = AUX_INAMES;
 
@@ -132,7 +131,9 @@ intr_init(void)
 		}
 	}
 
-	memcpy(g_inames, inames, MAX_INAME_LENGTH);
+	KASSERT(MAX_INAME_LENGTH <=
+		((uintptr_t)eintrnames - (uintptr_t)intrnames));
+	memcpy(intrnames, inames, MAX_INAME_LENGTH);
 
 	intr_computeipl();
 

Reply via email to