Module Name:    src
Committed By:   matt
Date:           Tue Mar 20 00:31:24 UTC 2012

Modified Files:
        src/lib/libc/gen: nlist_ecoff.c

Log Message:
Simplify a bit and constify as well.  Since the file is mapped read-only,
use const references to access its data.


To generate a diff of this commit:
cvs rdiff -u -r1.22 -r1.23 src/lib/libc/gen/nlist_ecoff.c

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

Modified files:

Index: src/lib/libc/gen/nlist_ecoff.c
diff -u src/lib/libc/gen/nlist_ecoff.c:1.22 src/lib/libc/gen/nlist_ecoff.c:1.23
--- src/lib/libc/gen/nlist_ecoff.c:1.22	Tue Mar 20 00:16:35 2012
+++ src/lib/libc/gen/nlist_ecoff.c	Tue Mar 20 00:31:24 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: nlist_ecoff.c,v 1.22 2012/03/20 00:16:35 christos Exp $ */
+/* $NetBSD: nlist_ecoff.c,v 1.23 2012/03/20 00:31:24 matt Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou
@@ -36,7 +36,7 @@
 
 #include <sys/cdefs.h>
 #if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: nlist_ecoff.c,v 1.22 2012/03/20 00:16:35 christos Exp $");
+__RCSID("$NetBSD: nlist_ecoff.c,v 1.23 2012/03/20 00:31:24 matt Exp $");
 #endif /* LIBC_SCCS and not lint */
 
 #include "namespace.h"
@@ -59,17 +59,17 @@ __RCSID("$NetBSD: nlist_ecoff.c,v 1.22 2
 
 #ifdef NLIST_ECOFF
 #define	check(off, size) \
-	(/*CONSTCOND*/(off < 0) || ((size_t)(off + size) > mappedsize))
+	((size_t)off >= mappedsize || (size_t)(off + size) > mappedsize)
 
 int
 __fdnlist_ecoff(int fd, struct nlist *list)
 {
 	struct nlist *p;
-	struct ecoff_exechdr *exechdrp;
-	struct ecoff_symhdr *symhdrp;
-	struct ecoff_extsym *esyms;
+	const struct ecoff_exechdr *exechdrp;
+	const struct ecoff_symhdr *symhdrp;
+	const struct ecoff_extsym *esyms;
 	struct stat st;
-	char *mappedfile;
+	const char *mappedfile;
 	size_t mappedsize;
 	u_long symhdroff, extstroff;
 	u_int symhdrsize;
@@ -107,7 +107,7 @@ __fdnlist_ecoff(int fd, struct nlist *li
 	 */
 	if (check(0, sizeof *exechdrp))
 		goto unmap;
-	exechdrp = mappedfile;
+	exechdrp = (const void *)mappedfile;
 
 	if (ECOFF_BADMAG(exechdrp))
 		goto unmap;
@@ -121,12 +121,12 @@ __fdnlist_ecoff(int fd, struct nlist *li
 	if ((symhdroff + sizeof *symhdrp) > mappedsize ||
 	    sizeof *symhdrp != symhdrsize)
 		goto unmap;
-	symhdrp = (void *)&mappedfile[symhdroff];
+	symhdrp = (const void *)&mappedfile[symhdroff];
 
 	nesyms = symhdrp->esymMax;
 	if (check(symhdrp->cbExtOffset, nesyms * sizeof *esyms))
 		goto unmap;
-	esyms = (void *)&mappedfile[symhdrp->cbExtOffset];
+	esyms = (const void *)&mappedfile[symhdrp->cbExtOffset];
 	extstroff = symhdrp->cbSsExtOffset;
 
 	/*
@@ -149,15 +149,15 @@ __fdnlist_ecoff(int fd, struct nlist *li
 	for (i = 0; i < nesyms; i++) {
 		for (p = list; !ISLAST(p); p++) {
 			const char *nlistname;
-			char *symtabname;
+			const char *symtabname;
 
 			/* This may be incorrect */
 			nlistname = N_NAME(p);
 			if (*nlistname == '_')
 				nlistname++;
 
-			symtabname = (void *)&mappedfile[extstroff
-			    + esyms[i].es_strindex];
+			symtabname =
+			    &mappedfile[extstroff + esyms[i].es_strindex];
 
 			if (!strcmp(symtabname, nlistname)) {
 				/*
@@ -178,7 +178,7 @@ __fdnlist_ecoff(int fd, struct nlist *li
 done:
 	rv = nent;
 unmap:
-	munmap(mappedfile, mappedsize);
+	munmap(__UNCONST(mappedfile), mappedsize);
 out:
 	return rv;
 }

Reply via email to