aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-03-29 13:27:32 +0200
committerPierre Ossman <ossman@cendio.se>2017-03-29 13:27:32 +0200
commitfbbd48b35e53fb156b91715dae4aab9008533565 (patch)
tree189f5a82c787d58e0fe07bce6ee74c749f19236d
parentea69c99c082579d9c8572a06afb9dbcf4ca1cac6 (diff)
downloadtigervnc-fbbd48b35e53fb156b91715dae4aab9008533565.tar.gz
tigervnc-fbbd48b35e53fb156b91715dae4aab9008533565.zip
Avoid leaking shared memory via X server
It's not enough that we detach from the shared memory, we must also tell the X server to do so for it to be freed properly.
-rw-r--r--vncviewer/PlatformPixelBuffer.cxx1
1 files changed, 1 insertions, 0 deletions
diff --git a/vncviewer/PlatformPixelBuffer.cxx b/vncviewer/PlatformPixelBuffer.cxx
index 4802ba46..7b3f34a0 100644
--- a/vncviewer/PlatformPixelBuffer.cxx
+++ b/vncviewer/PlatformPixelBuffer.cxx
@@ -69,6 +69,7 @@ PlatformPixelBuffer::~PlatformPixelBuffer()
#if !defined(WIN32) && !defined(__APPLE__)
if (shminfo) {
vlog.debug("Freeing shared memory XImage");
+ XShmDetach(fl_display, shminfo);
shmdt(shminfo->shmaddr);
shmctl(shminfo->shmid, IPC_RMID, 0);
delete shminfo;