static void layout_remaining_space(float ratio)
{
+ Int ires;
+ void* vres;
+
/* This tries to give the client as large as possible address space while
* taking into account the tool's shadow needs. */
addr_t client_size = ROUNDDN((VG_(valgrind_base) - REDZONE_SIZE) / (1. + ratio),
#undef SEGSIZE
// Ban redzone
- mmap((void *)VG_(client_end), REDZONE_SIZE, PROT_NONE,
- MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0);
+ vres = mmap((void *)VG_(client_end), REDZONE_SIZE, PROT_NONE,
+ MAP_FIXED|MAP_ANON|MAP_PRIVATE, -1, 0);
+ vg_assert((void*)-1 != vres);
// Make client hole
- munmap((void*)VG_(client_base), client_size);
+ ires = munmap((void*)VG_(client_base), client_size);
+ vg_assert(0 == ires);
// Map shadow memory.
// Initially all inaccessible, incrementally initialized as it is used
- if (shadow_size != 0)
- mmap((char *)VG_(shadow_base), shadow_size, PROT_NONE,
- MAP_PRIVATE|MAP_ANON|MAP_FIXED, -1, 0);
+ if (shadow_size != 0) {
+ vres = mmap((char *)VG_(shadow_base), shadow_size, PROT_NONE,
+ MAP_PRIVATE|MAP_ANON|MAP_FIXED, -1, 0);
+ vg_assert((void*)-1 != vres);
+ }
}
/*====================================================================*/
const struct exeinfo *info,
UInt** client_auxv)
{
+ void* res;
char **cpp;
char *strtab; /* string table */
char *stringbase;
/* ==================== allocate space ==================== */
/* allocate a stack - mmap enough space for the stack */
- mmap((void *)PGROUNDDN(cl_esp),
- VG_(client_end) - PGROUNDDN(cl_esp),
- PROT_READ | PROT_WRITE | PROT_EXEC,
- MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0);
-
+ res = mmap((void *)PGROUNDDN(cl_esp), VG_(client_end) - PGROUNDDN(cl_esp),
+ PROT_READ | PROT_WRITE | PROT_EXEC,
+ MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0);
+ vg_assert((void*)-1 != res);
/* ==================== copy client stack ==================== */
if (VG_(threads)[tid].stack_size > 0)
VG_(client_free)(VG_(threads)[tid].stack_base);
new_stack = VG_(client_alloc)(0, new_stk_szb,
- VKI_PROT_READ | VKI_PROT_WRITE | VKI_PROT_EXEC,
+ VKI_PROT_READ|VKI_PROT_WRITE|VKI_PROT_EXEC,
SF_STACK);
+ vg_assert(0 != new_stack);
VG_(threads)[tid].stack_base = new_stack;
VG_(threads)[tid].stack_size = new_stk_szb;
VG_(threads)[tid].stack_highest_word
VG_(close)(fd);
if (calc_gnu_debuglink_crc32(0, (UChar*)addr, *size) != crc) {
- VG_(munmap)((void*)addr, *size);
+ int res = VG_(munmap)((void*)addr, *size);
+ vg_assert(0 == res);
return 0;
}
}
res = True;
- out:
+ out: {
+ Int m_res;
/* Last, but not least, heave the image(s) back overboard. */
- if (dimage) VG_(munmap) ( (void*)dimage, n_dimage );
- VG_(munmap) ( (void*)oimage, n_oimage );
+ if (dimage) {
+ m_res = VG_(munmap) ( (void*)dimage, n_dimage );
+ vg_assert(0 == m_res);
+ }
+ m_res = VG_(munmap) ( (void*)oimage, n_oimage );
+ vg_assert(0 == m_res);
return res;
+ }
}
/*------------------------------------------------------------*/