[X2Go-Commits] [nx-libs] 77/219: Screen.c: Fix: make sure RRCloseScreen is being called

git-admin at x2go.org git-admin at x2go.org
Sat Sep 28 12:10:25 CEST 2019


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch 3.6.x
in repository nx-libs.

commit 3b06ad51d91ff2b9442f159cddf34ed03bc2dd35
Author: Ulrich Sibiller <uli42 at gmx.de>
Date:   Mon Jun 17 16:06:02 2019 +0200

    Screen.c: Fix: make sure RRCloseScreen is being called
    
    Fixes ArcticaProject/nx-libs#598
    
    In nxagentOpenScreen we first initialized the RRExtension for the
    screen and then replaced pScreen->CloseScreen by
    nxagentCloseScreen. This resulted in RandR's RRCloseScreen (and any
    other CloseScreen procedure installed by extensions) being no longer
    called.
    
    Moving RandR init after configuring pScreen->CloseScreen ensures the
    correct calling cascade:
    
    RRCloseScreen -> nxagentCloseScreen ->fbCloseScreen (called explicitly
    by nxagentCloseScreen).
    
    Which in turn will fix this memory leak:
    
    ==9688== 328 (312 direct, 16 indirect) bytes in 1 blocks are definitely lost in loss record 271 of 319
    ==9688==    at 0x4837B65: calloc (vg_replace_malloc.c:752)
    ==9688==    by 0x4ED2C6: RRScreenInit (randr.c:329)
    ==9688==    by 0x1F2B18: nxagentInitRandRExtension (Extensions.c:122)
    ==9688==    by 0x1DEAFF: nxagentOpenScreen (Screen.c:1409)
    ==9688==    by 0x16D7F8: AddScreen (dispatch.c:4257)
    ==9688==    by 0x1DA0CF: InitOutput (Init.c:397)
    ==9688==    by 0x14DCC2: main (main.c:280)
---
 nx-X11/programs/Xserver/hw/nxagent/Screen.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 7d180da44..84ef9c4a4 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -1401,13 +1401,6 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
     pScreen -> rootVisual = defaultVisual;
     pScreen -> rootDepth = rootDepth;
 
-    /*
-     * Complete the initialization of the RANDR
-     * extension.
-     */
-
-    nxagentInitRandRExtension(pScreen);
-
     /*
      * Set up the internal structures used for
      * tracking the proxy resources associated
@@ -1694,6 +1687,13 @@ N/A
                                nxagentOption(Height)) / 32)
   }
 
+  /*
+   * Complete the initialization of the RANDR
+   * extension.
+   */
+
+  nxagentInitRandRExtension(pScreen);
+
   #ifdef TEST
   nxagentPrintAgentGeometry(NULL, "nxagentOpenScreen:");
   #endif

--
Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git


More information about the x2go-commits mailing list