summaryrefslogtreecommitdiff
path: root/usr.sbin/crunch
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2015-04-17 15:18:54 +0000
committerEd Maste <emaste@FreeBSD.org>2015-04-17 15:18:54 +0000
commit26934ea0d782442aa84bce895c73f1050e193b88 (patch)
treedd48659e4f75cf8a2858cad38ffd914a1960cb4c /usr.sbin/crunch
parent9d77aa2a873c8c126f8ee0b9120fa45853de5e4c (diff)
downloadsrc-test2-26934ea0d782442aa84bce895c73f1050e193b88.tar.gz
src-test2-26934ea0d782442aa84bce895c73f1050e193b88.zip
Notes
Diffstat (limited to 'usr.sbin/crunch')
-rw-r--r--usr.sbin/crunch/crunchide/Makefile5
-rw-r--r--usr.sbin/crunch/crunchide/crunchide.c6
-rw-r--r--usr.sbin/crunch/crunchide/exec_aout.c198
-rw-r--r--usr.sbin/crunch/crunchide/extern.h8
4 files changed, 0 insertions, 217 deletions
diff --git a/usr.sbin/crunch/crunchide/Makefile b/usr.sbin/crunch/crunchide/Makefile
index fd23dec4010f..49bb557b5f0c 100644
--- a/usr.sbin/crunch/crunchide/Makefile
+++ b/usr.sbin/crunch/crunchide/Makefile
@@ -5,11 +5,6 @@ SRCS= crunchide.c
TARGET_ARCH?= ${MACHINE_ARCH}
-.if ${TARGET_ARCH} == i386 && ${MACHINE_ARCH} == i386
-CFLAGS+=-DNLIST_AOUT
-SRCS+= exec_aout.c
-.endif
-
.if ${TARGET_ARCH} == aarch64 || ${TARGET_ARCH} == amd64 || \
${TARGET_ARCH} == powerpc64 || \
${TARGET_ARCH} == sparc64 || ${TARGET_ARCH:Mmips64*}
diff --git a/usr.sbin/crunch/crunchide/crunchide.c b/usr.sbin/crunch/crunchide/crunchide.c
index d2b1123bd59a..8665a14a734e 100644
--- a/usr.sbin/crunch/crunchide/crunchide.c
+++ b/usr.sbin/crunch/crunchide/crunchide.c
@@ -212,12 +212,6 @@ struct {
int (*check)(int, const char *); /* 1 if match, zero if not */
int (*hide)(int, const char *); /* non-zero if error */
} exec_formats[] = {
-#ifdef NLIST_AOUT
- { "a.out", check_aout, hide_aout, },
-#endif
-#ifdef NLIST_ECOFF
- { "ECOFF", check_elf64, hide_elf64, },
-#endif
#ifdef NLIST_ELF32
{ "ELF32", check_elf32, hide_elf32, },
#endif
diff --git a/usr.sbin/crunch/crunchide/exec_aout.c b/usr.sbin/crunch/crunchide/exec_aout.c
deleted file mode 100644
index a608c2331666..000000000000
--- a/usr.sbin/crunch/crunchide/exec_aout.c
+++ /dev/null
@@ -1,198 +0,0 @@
-/* $NetBSD: exec_aout.c,v 1.6 1997/08/02 21:30:17 perry Exp $ */
-/*
- * Copyright (c) 1997 Christopher G. Demetriou. All rights reserved.
- * Copyright (c) 1994 University of Maryland
- * All Rights Reserved.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of U.M. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. U.M. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- *
- * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
- * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: James da Silva, Systems Design and Analysis Group
- * Computer Science Department
- * University of Maryland at College Park
- */
-#include <sys/cdefs.h>
-#ifndef lint
-__RCSID("$NetBSD: exec_aout.c,v 1.6 1997/08/02 21:30:17 perry Exp $");
-__FBSDID("$FreeBSD$");
-#endif
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <a.out.h>
-#include <sys/types.h>
-#include <sys/endian.h>
-#include <sys/stat.h>
-#include <sys/errno.h>
-#include <netinet/in.h>
-
-#include "extern.h"
-
-#if defined(NLIST_AOUT)
-
-int nsyms, ntextrel, ndatarel;
-struct exec *hdrp;
-char *aoutdata, *strbase;
-struct relocation_info *textrel, *datarel;
-struct nlist *symbase;
-
-
-#define SYMSTR(sp) (&strbase[(sp)->n_un.n_strx])
-
-/* is the symbol a global symbol defined in the current file? */
-#define IS_GLOBAL_DEFINED(sp) \
- (((sp)->n_type & N_EXT) && ((sp)->n_type & N_TYPE) != N_UNDF)
-
-/* is the relocation entry dependent on a symbol? */
-#define IS_SYMBOL_RELOC(rp) \
- ((rp)->r_extern||(rp)->r_baserel||(rp)->r_jmptable)
-
-static void check_reloc(const char *filename, struct relocation_info *relp);
-
-int check_aout(int inf, const char *filename)
-{
- struct stat infstat;
- struct exec eh;
-
- /*
- * check the header to make sure it's an a.out-format file.
- */
-
- if(fstat(inf, &infstat) == -1)
- return 0;
- if(infstat.st_size < sizeof eh)
- return 0;
- if(read(inf, &eh, sizeof eh) != sizeof eh)
- return 0;
-
- if(N_BADMAG(eh))
- return 0;
-
- return 1;
-}
-
-int hide_aout(int inf, const char *filename)
-{
- struct stat infstat;
- struct relocation_info *relp;
- struct nlist *symp;
- int rc;
-
- /*
- * do some error checking.
- */
-
- if(fstat(inf, &infstat) == -1) {
- perror(filename);
- return 1;
- }
-
- /*
- * Read the entire file into memory. XXX - Really, we only need to
- * read the header and from TRELOFF to the end of the file.
- */
-
- if((aoutdata = (char *) malloc(infstat.st_size)) == NULL) {
- fprintf(stderr, "%s: too big to read into memory\n", filename);
- return 1;
- }
-
- if((rc = read(inf, aoutdata, infstat.st_size)) < infstat.st_size) {
- fprintf(stderr, "%s: read error: %s\n", filename,
- rc == -1? strerror(errno) : "short read");
- return 1;
- }
-
- /*
- * Calculate offsets and sizes from the header.
- */
-
- hdrp = (struct exec *) aoutdata;
-
-#ifdef __FreeBSD__
- textrel = (struct relocation_info *) (aoutdata + N_RELOFF(*hdrp));
- datarel = (struct relocation_info *) (aoutdata + N_RELOFF(*hdrp) +
- hdrp->a_trsize);
-#else
- textrel = (struct relocation_info *) (aoutdata + N_TRELOFF(*hdrp));
- datarel = (struct relocation_info *) (aoutdata + N_DRELOFF(*hdrp));
-#endif
- symbase = (struct nlist *) (aoutdata + N_SYMOFF(*hdrp));
- strbase = (char *) (aoutdata + N_STROFF(*hdrp));
-
- ntextrel = hdrp->a_trsize / sizeof(struct relocation_info);
- ndatarel = hdrp->a_drsize / sizeof(struct relocation_info);
- nsyms = hdrp->a_syms / sizeof(struct nlist);
-
- /*
- * Zap the type field of all globally-defined symbols. The linker will
- * subsequently ignore these entries. Don't zap any symbols in the
- * keep list.
- */
-
- for(symp = symbase; symp < symbase + nsyms; symp++) {
- if(!IS_GLOBAL_DEFINED(symp)) /* keep undefined syms */
- continue;
-
- /* keep (C) symbols which are on the keep list */
- if(SYMSTR(symp)[0] == '_' && in_keep_list(SYMSTR(symp) + 1))
- continue;
-
- symp->n_type = 0;
- }
-
- /*
- * Check whether the relocation entries reference any symbols that we
- * just zapped. I don't know whether ld can handle this case, but I
- * haven't encountered it yet. These checks are here so that the program
- * doesn't fail silently should such symbols be encountered.
- */
-
- for(relp = textrel; relp < textrel + ntextrel; relp++)
- check_reloc(filename, relp);
- for(relp = datarel; relp < datarel + ndatarel; relp++)
- check_reloc(filename, relp);
-
- /*
- * Write the .o file back out to disk. XXX - Really, we only need to
- * write the symbol table entries back out.
- */
- lseek(inf, 0, SEEK_SET);
- if((rc = write(inf, aoutdata, infstat.st_size)) < infstat.st_size) {
- fprintf(stderr, "%s: write error: %s\n", filename,
- rc == -1? strerror(errno) : "short write");
- return 1;
- }
-
- return 0;
-}
-
-
-static void check_reloc(const char *filename, struct relocation_info *relp)
-{
- /* bail out if we zapped a symbol that is needed */
- if(IS_SYMBOL_RELOC(relp) && symbase[relp->r_symbolnum].n_type == 0) {
- fprintf(stderr,
- "%s: oops, have hanging relocation for %s: bailing out!\n",
- filename, SYMSTR(&symbase[relp->r_symbolnum]));
- exit(1);
- }
-}
-
-#endif /* defined(NLIST_AOUT) */
diff --git a/usr.sbin/crunch/crunchide/extern.h b/usr.sbin/crunch/crunchide/extern.h
index 4200bc3d4022..1e7809a0c069 100644
--- a/usr.sbin/crunch/crunchide/extern.h
+++ b/usr.sbin/crunch/crunchide/extern.h
@@ -31,14 +31,6 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifdef NLIST_AOUT
-int check_aout(int, const char *);
-int hide_aout(int, const char *);
-#endif
-#ifdef NLIST_ECOFF
-int check_ecoff(int, const char *);
-int hide_ecoff(int, const char *);
-#endif
#ifdef NLIST_ELF32
int check_elf32(int, const char *);
int hide_elf32(int, const char *);