[PATCH Xephyr] Xephyr: don't leak shared memory segments
Alex Plotnick
shrike at netaxs.com
Mon Mar 19 09:08:53 PDT 2012
The shared memory segment created as the Xephyr screen buffer was
not being removed, and so would persist even after the server exits.
https://bugs.freedesktop.org/show_bug.cgi?id=47510
Signed-off-by: Alex Plotnick <shrike at netaxs.com>
---
The first hunk also fixes a comment typo and a superfluous space in the
immediate vicinity. If anyone objects to these being in the same commit,
I can split it up, but it didn't seem worth it for such trivial tweaks.
hw/kdrive/ephyr/hostx.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
index ebe4e52..849e138 100644
--- a/hw/kdrive/ephyr/hostx.c
+++ b/hw/kdrive/ephyr/hostx.c
@@ -673,15 +673,14 @@ hostx_screen_init (EphyrScreenInfo screen,
if (host_screen->ximg != NULL)
{
/* Free up the image data if previously used
- * i.ie called by server reset
+ * i.e., called by server reset
*/
if (HostX.have_shm)
{
XShmDetach(HostX.dpy, &host_screen->shminfo);
- XDestroyImage (host_screen->ximg);
+ XDestroyImage(host_screen->ximg);
shmdt(host_screen->shminfo.shmaddr);
- shmctl(host_screen->shminfo.shmid, IPC_RMID, 0);
}
else
{
@@ -710,15 +709,16 @@ hostx_screen_init (EphyrScreenInfo screen,
EPHYR_DBG("Can't attach SHM Segment, falling back to plain XImages");
HostX.have_shm = False;
XDestroyImage(host_screen->ximg);
- shmctl(host_screen->shminfo.shmid, IPC_RMID, 0);
}
else
{
EPHYR_DBG("SHM segment attached %p", host_screen->shminfo.shmaddr);
host_screen->shminfo.readOnly = False;
XShmAttach(HostX.dpy, &host_screen->shminfo);
+ XSync(HostX.dpy, False);
shm_success = True;
}
+ shmctl(host_screen->shminfo.shmid, IPC_RMID, 0);
}
if (!shm_success)
--
1.7.9.2
More information about the xorg-devel
mailing list