summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjca <jca@openbsd.org>2013-07-15 00:01:58 +0000
committerjca <jca@openbsd.org>2013-07-15 00:01:58 +0000
commit11312754b4f12860d1241b3c65a7643634627f8b (patch)
treeb8dabc0c195d7a5284086ee95eeed9b2573c468c
parentTo prevent lock ordering problems with the kernel lock, we need to make sure (diff)
downloadwireguard-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.c31
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;