diff options
author | 2013-07-15 00:01:58 +0000 | |
---|---|---|
committer | 2013-07-15 00:01:58 +0000 | |
commit | 11312754b4f12860d1241b3c65a7643634627f8b (patch) | |
tree | b8dabc0c195d7a5284086ee95eeed9b2573c468c | |
parent | To prevent lock ordering problems with the kernel lock, we need to make sure (diff) | |
download | wireguard-openbsd-11312754b4f12860d1241b3c65a7643634627f8b.tar.xz wireguard-openbsd-11312754b4f12860d1241b3c65a7643634627f8b.zip |
Remove some unused variables, from David Hill dhill at mindcry.org
While here, do better checks in elf_write_lib() and ansify
elf_sum_reloc()'s decl/def. With input from and ok krw@
-rw-r--r-- | libexec/ld.so/ldconfig/prebind.c | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/libexec/ld.so/ldconfig/prebind.c b/libexec/ld.so/ldconfig/prebind.c index ecded88cc51..7b6c224d932 100644 --- a/libexec/ld.so/ldconfig/prebind.c +++ b/libexec/ld.so/ldconfig/prebind.c @@ -1,4 +1,4 @@ -/* $OpenBSD: prebind.c,v 1.21 2013/07/05 21:10:50 miod Exp $ */ +/* $OpenBSD: prebind.c,v 1.22 2013/07/15 00:01:58 jca Exp $ */ /* * Copyright (c) 2006 Dale Rahn <drahn@dalerahn.com> * @@ -152,7 +152,7 @@ struct elf_object * elf_lookup_object_devino(dev_t dev, ino_t inode, void elf_free_curbin_list(struct elf_object *obj); void elf_resolve_curbin(void); struct proglist *elf_newbin(void); -void elf_sum_reloc(); +void elf_sum_reloc(void); int elf_prep_lib_prebind(struct elf_object *object); int elf_prep_bin_prebind(struct proglist *pl); void add_fixup_prog(struct elf_object *prog, struct elf_object *obj, int idx, @@ -475,12 +475,10 @@ done: int elf_check_note(void *buf, Elf_Phdr *phdr) { - Elf_Ehdr *ehdr; u_long address; u_int *pint; char *osname; - ehdr = (Elf_Ehdr *)buf; address = phdr->p_offset; pint = (u_int *)((char *)buf + address); osname = (char *)buf + address + sizeof(*pint) * 3; @@ -1425,7 +1423,7 @@ elf_init_objarray(void) } void -elf_sum_reloc() +elf_sum_reloc(void) { int numobjs; int err = 0; @@ -1715,7 +1713,7 @@ elf_write_lib(struct elf_object *object, struct nameidx *nameidx, u_int32_t next_start, *fixuptab = NULL; struct stat ifstat; off_t base_offset; - size_t len; + ssize_t len; int fd = -1, i; int readonly = 0; @@ -1731,8 +1729,24 @@ elf_write_lib(struct elf_object *object, struct nameidx *nameidx, } readonly = 1; } - lseek(fd, -((off_t)sizeof(struct prebind_footer)), SEEK_END); + if (lseek(fd, -((off_t)sizeof(struct prebind_footer)), SEEK_END) + == -1) { + perror(object->load_name); + close(fd); + return 1; + } + len = read(fd, &footer, sizeof(struct prebind_footer)); + if (len != sizeof(struct prebind_footer)) { + close(fd); + if (len == -1) + perror(object->load_name); + else + /* paranoia */ + warnx("%s on %s: short read (corrupted file?)", + __func__, object->load_name); + return 1; + } if (fstat(fd, &ifstat) == -1) { perror(object->load_name); @@ -2213,7 +2227,6 @@ void copy_oldsymcache(int objidx, void *prebind_map) { struct prebind_footer *footer; - struct elf_object *object; struct elf_object *tobj; struct symcache_noflag *tcache; struct symcachetab *symcache; @@ -2223,8 +2236,6 @@ copy_oldsymcache(int objidx, void *prebind_map) u_int32_t *poffset; struct nameidx *nameidx; - object = objarray[objidx].obj; - poffset = (u_int32_t *)prebind_map; c = prebind_map; offset = *poffset; |