[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] libxl: fix reentrancy hazard in fd event processing
Ian Campbell writes ("Re: [PATCH 1/2] libxl: fix reentrancy hazard in fd event processing"): > On Fri, 2012-07-20 at 19:18 +0100, Ian Jackson wrote: ... > > Program terminated with signal 11, Segmentation fault. > > #0 0x00007f7ff743131b in afterpoll_check_fd (poller=<optimized out>, > > fds=0x7f7ff7b241c0, nfds=7, fd=-1, events=1) > > at libxl_event.c:856 > > 856 if (fds[slot].fd != fd) > > Has Roger or you tested this now? I still haven't tested the new version I'm afraid. > It looks plausible to me. :-). > > diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h > > index 2781398..e938660 100644 > > --- a/tools/libxl/libxl_internal.h > > +++ b/tools/libxl/libxl_internal.h > > @@ -272,7 +272,7 @@ struct libxl__poller { > > int fd_polls_allocd; > > > > int fd_rindices_allocd; > > - int (*fd_rindices)[3]; /* see libxl_osevent_beforepoll */ > > + int (*fd_rindices)[3]; /* see libxl_event.c:beforepoll_internal */ > > do you mean afterpoll here? No. I mean this comment: /* * In order to be able to efficiently find the libxl__ev_fd for a * struct poll during _afterpoll, we maintain a shadow data * structure in CTX->fd_rindices: each fd corresponds to a slot in * fd_rindices, and each element in the rindices is three indices * into the fd array (for POLLIN, POLLPRI and POLLOUT). */ which is halfway down beforepoll_internal. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |