goto nogood;
}
-
/* FIXME: ugly - save this as valid_hdr modifies it */
true_brk = binflat.bss_end;
top = progbase + bin_size;
+ udata.u_top = top;
+ udata.u_ptab->p_top = top;
+
// kprintf("user space at %p\n", progbase);
// kprintf("top at %p\n", progbase + bin_size);
udata.u_count = sizeof(corehdr);
writei(ino, 0);
udata.u_sysio = false;
- udata.u_base = MAPBASE;
+ udata.u_base = (uint8_t *)MAPBASE;
udata.u_count = udata.u_break - MAPBASE;
writei(ino, 0);
udata.u_base = udata.u_sp;
- udata.u_count = PROGTOP - (uint16_t)udata.u_sp;
+ udata.u_count = PROGTOP - (uint32_t)udata.u_sp;
writei(ino, 0);
i_unlock_deref(ino);
return W_COREDUMP;