Fix for shared memory leakage.
diff --git a/vncviewer/X11PixelBuffer.cxx b/vncviewer/X11PixelBuffer.cxx
index 4f52cad..e23f777 100644
--- a/vncviewer/X11PixelBuffer.cxx
+++ b/vncviewer/X11PixelBuffer.cxx
@@ -187,8 +187,9 @@
goto free_xim;
shminfo->shmaddr = xim->data = (char*)shmat(shminfo->shmid, 0, 0);
+ shmctl(shminfo->shmid, IPC_RMID, 0); // to avoid memory leakage
if (shminfo->shmaddr == (char *)-1)
- goto free_shm;
+ goto free_xim;
shminfo->readOnly = True;
@@ -216,9 +217,6 @@
free_shmaddr:
shmdt(shminfo->shmaddr);
-free_shm:
- shmctl(shminfo->shmid, IPC_RMID, 0);
-
free_xim:
XDestroyImage(xim);
xim = NULL;