Hi -
I'm using my newly enhanced rpctrace to hunt down a few bugs.
Here's a minor one in glibc that shows up like this on "rpctrace /bin/true":
task337(pid1240)->mach_port_deallocate (pn{ 0}) = 0xf ((os/kern) invalid
name)
The trick is to get rpctrace to halt the process when it encounters
something like that, then gdb shows you right where the problem is. I
haven't worked that up into a publishable patch, yet...
agape
brent
--- sysdeps/mach/hurd/dl-sysdep.c~ 2016-08-08 12:55:47.000000000 -1000
+++ sysdeps/mach/hurd/dl-sysdep.c 2016-10-30 17:25:06.564622626 -1000
@@ -472,7 +472,8 @@
err = __io_map ((mach_port_t) fd, &memobj_rd, &memobj_wr);
if (err)
return __hurd_fail (err), MAP_FAILED;
- __mach_port_deallocate (__mach_task_self (), memobj_wr);
+ if (memobj_wr != MACH_PORT_NULL)
+ __mach_port_deallocate (__mach_task_self (), memobj_wr);
}
mapaddr = (vm_address_t) addr;