From 7ec96efe3ccd0d3b2b05f91c636918644e28be87 Mon Sep 17 00:00:00 2001 From: Dmitry Safonov Date: Wed, 30 Mar 2016 18:12:25 +0300 Subject: [PATCH] pie/vdso: convert (char *mem) to (uintptr_t mem) Impact: drop additional casts all around. Cleanup. Signed-off-by: Dmitry Safonov Reviewed-by: Cyrill Gorcunov Signed-off-by: Pavel Emelyanov --- criu/include/parasite-vdso.h | 1 - criu/include/util-vdso.h | 2 +- criu/pie/parasite-vdso.c | 3 ++- criu/pie/parasite.c | 2 +- criu/pie/util-vdso.c | 15 +++++++-------- criu/vdso.c | 2 +- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/criu/include/parasite-vdso.h b/criu/include/parasite-vdso.h index 295430f61..530cc01cb 100644 --- a/criu/include/parasite-vdso.h +++ b/criu/include/parasite-vdso.h @@ -80,7 +80,6 @@ static inline bool is_vdso_mark(void *addr) } extern int vdso_do_park(struct vdso_symtable *sym_rt, unsigned long park_at, unsigned long park_size); -extern int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t); extern int vdso_proxify(char *who, struct vdso_symtable *sym_rt, unsigned long vdso_rt_parked_at, size_t index, VmaEntry *vmas, size_t nr_vmas); diff --git a/criu/include/util-vdso.h b/criu/include/util-vdso.h index d3903572a..43f7549c8 100644 --- a/criu/include/util-vdso.h +++ b/criu/include/util-vdso.h @@ -88,6 +88,6 @@ static inline unsigned long vvar_vma_size(struct vdso_symtable *t) return t->vvar_end - t->vvar_start; } -extern int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t); +extern int vdso_fill_symtable(uintptr_t mem, size_t size, struct vdso_symtable *t); #endif /* __CR_UTIL_VDSO_H__ */ diff --git a/criu/pie/parasite-vdso.c b/criu/pie/parasite-vdso.c index 9ee42e528..c8cb34f87 100644 --- a/criu/pie/parasite-vdso.c +++ b/criu/pie/parasite-vdso.c @@ -105,7 +105,8 @@ int vdso_proxify(char *who, struct vdso_symtable *sym_rt, /* * Find symbols in vDSO zone read from image. */ - if (vdso_fill_symtable((void *)vma_vdso->start, vma_entry_len(vma_vdso), &s)) + if (vdso_fill_symtable((uintptr_t)vma_vdso->start, + vma_entry_len(vma_vdso), &s)) return -1; /* diff --git a/criu/pie/parasite.c b/criu/pie/parasite.c index d47f8252e..aa3054803 100644 --- a/criu/pie/parasite.c +++ b/criu/pie/parasite.c @@ -523,7 +523,7 @@ static int parasite_check_vdso_mark(struct parasite_vdso_vma_entry *args) if (args->try_fill_symtable) { struct vdso_symtable t; - if (vdso_fill_symtable((void *)args->start, args->len, &t)) + if (vdso_fill_symtable(args->start, args->len, &t)) args->is_vdso = false; else args->is_vdso = true; diff --git a/criu/pie/util-vdso.c b/criu/pie/util-vdso.c index b388916fb..1c3f7ec38 100644 --- a/criu/pie/util-vdso.c +++ b/criu/pie/util-vdso.c @@ -25,9 +25,8 @@ #define LOG_PREFIX "vdso: " /* Check if pointer is out-of-bound */ -static bool __ptr_oob(uintptr_t ptr, void *mem, size_t size) +static bool __ptr_oob(uintptr_t ptr, uintptr_t start, size_t size) { - uintptr_t start = (uintptr_t)mem; uintptr_t end = start + size; return ptr > end || ptr < start; @@ -77,7 +76,7 @@ static int has_elf_identity(Ehdr_t *ehdr) return true; } -int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t) +int vdso_fill_symtable(uintptr_t mem, size_t size, struct vdso_symtable *t) { const char *vdso_symbols[VDSO_SYMBOL_MAX] = { ARCH_VDSO_SYMBOLS @@ -113,7 +112,7 @@ int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t) /* * We need PT_LOAD and PT_DYNAMIC here. Each once. */ - addr = (uintptr_t)mem + ehdr->e_phoff; + addr = mem + ehdr->e_phoff; for (i = 0; i < ehdr->e_phnum; i++, addr += sizeof(Phdr_t)) { if (__ptr_oob(addr, mem, size)) goto err_oob; @@ -147,7 +146,7 @@ int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t) * Dynamic section tags should provide us the rest of information * needed. Note that we're interested in a small set of tags. */ - addr = (uintptr_t)mem + dynamic->p_offset; + addr = mem + dynamic->p_offset; for (i = 0; i < dynamic->p_filesz / sizeof(*d); i++, addr += sizeof(Dyn_t)) { if (__ptr_oob(addr, mem, size)) @@ -179,12 +178,12 @@ int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t) return -EINVAL; } - addr = (uintptr_t)mem + dyn_strtab->d_un.d_val - load->p_vaddr; + addr = mem + dyn_strtab->d_un.d_val - load->p_vaddr; if (__ptr_oob(addr, mem, size)) goto err_oob; dynsymbol_names = (void *)addr; - addr = (uintptr_t)mem + dyn_hash->d_un.d_ptr - load->p_vaddr; + addr = mem + dyn_hash->d_un.d_ptr - load->p_vaddr; if (__ptr_oob(addr, mem, size)) goto err_oob; hash = (void *)addr; @@ -202,7 +201,7 @@ int vdso_fill_symtable(char *mem, size_t size, struct vdso_symtable *t) k = elf_hash((const unsigned char *)symbol); for (j = bucket[k % nbucket]; j < nchain && chain[j] != STN_UNDEF; j = chain[j]) { - addr = (uintptr_t)mem + dyn_symtab->d_un.d_ptr - load->p_vaddr; + addr = mem + dyn_symtab->d_un.d_ptr - load->p_vaddr; Sym_t *sym; char *name; diff --git a/criu/vdso.c b/criu/vdso.c index bccf11cc1..517755513 100644 --- a/criu/vdso.c +++ b/criu/vdso.c @@ -257,7 +257,7 @@ static int vdso_fill_self_symtable(struct vdso_symtable *s) s->vma_start = start; s->vma_end = end; - ret = vdso_fill_symtable((void *)start, end - start, s); + ret = vdso_fill_symtable(start, end - start, s); if (ret) goto err; } else {