Justus Winter, le Thu 07 Nov 2013 19:12:28 +0100, a écrit : > Both task ports are deallocated in the destructor, so they must be > referenced in the constructor.
Ack. But then we are missing dereference in if (err) case below. > * libshouldbeinlibc/portxlate.c (port_name_xlator_create): Fix > reference counting. > --- > libshouldbeinlibc/portxlate.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/libshouldbeinlibc/portxlate.c b/libshouldbeinlibc/portxlate.c > index 599fb58..18901d5 100644 > --- a/libshouldbeinlibc/portxlate.c > +++ b/libshouldbeinlibc/portxlate.c > @@ -35,7 +35,9 @@ port_name_xlator_create (mach_port_t from_task, mach_port_t > to_task, > if (! x) > return ENOMEM; > > + mach_port_mod_refs (mach_task_self (), from_task, MACH_PORT_RIGHT_SEND, > +1); > x->from_task = from_task; > + mach_port_mod_refs (mach_task_self (), to_task, MACH_PORT_RIGHT_SEND, +1); > x->to_task = to_task; > x->to_names = 0; > x->to_types = 0; > -- > 1.7.10.4 > > -- Samuel c> ah (on trouve fluide glacial sur le net, ou il faut aller dans le monde reel ?) s> dans le monde reel c> zut