1. 18 Jun, 2019 10 commits
    • Ulrich Sibiller's avatar
      Fix memleaks: Free devPrivates of devices on shutdown · 4dd1f3cb
      Ulrich Sibiller authored
      Fixes these two memory leaks identified by valgrind:
      
      ==28336== 32 (8 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 180 of 308
      ==28336==    at 0x48356AF: malloc (vg_replace_malloc.c:298)
      ==28336==    by 0x4837DE7: realloc (vg_replace_malloc.c:826)
      ==28336==    by 0x1AE322: AllocateDevicePrivate (privates.c:439)
      ==28336==    by 0x27527B: XkbSetExtension (xkbActions.c:72)
      ==28336==    by 0x198E9B: _RegisterPointerDevice (devices.c:361)
      ==28336==    by 0x1DBA35: InitInput (Init.c:440)
      ==28336==    by 0x14DBD6: main (main.c:303)
      ==28336==
      ==28336== 32 (8 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 181 of 308
      ==28336==    at 0x48356AF: malloc (vg_replace_malloc.c:298)
      ==28336==    by 0x4837DE7: realloc (vg_replace_malloc.c:826)
      ==28336==    by 0x1AE322: AllocateDevicePrivate (privates.c:439)
      ==28336==    by 0x27527B: XkbSetExtension (xkbActions.c:72)
      ==28336==    by 0x198F1B: _RegisterKeyboardDevice (devices.c:384)
      ==28336==    by 0x1DBA3D: InitInput (Init.c:441)
      ==28336==    by 0x14DBD6: main (main.c:303)
      4dd1f3cb
    • Ulrich Sibiller's avatar
      CloseDevice: call XkbRemoveResourceClient before freeing key class struct · ca741177
      Ulrich Sibiller authored
      This patch is not necessary at the current code level. But when xkb
      code introduced the dev->key check Xorg upstream missed that. So we
      backport it now to skip that trap when updating xkb code.
      
        Author: Alan Coopersmith <alan.coopersmith@sun.com>
        Date:   Mon Jan 4 18:21:54 2010 -0800
      
          CloseDevice: call XkbRemoveResourceClient before freeing key class struct
      
          XkbRemoveResourceClient() returns immediately if dev->key is NULL.
          CloseDevice calls XkbRemoveResourceClient until it removes all resources.
      
          If we free dev->key and NULL it before XkbRemoveResourceClient, then
          infinite loop ensues, and the server appears to hang on exit or crash.
      Signed-off-by: 's avatarAlan Coopersmith <alan.coopersmith@sun.com>
      Reviewed-by: 's avatarPeter Hutterer <peter.hutterer@who-t.net>
      Reviewed-by: 's avatarDaniel Stone <daniel@fooishbar.org>
      Signed-off-by: 's avatarKeith Packard <keithp@keithp.com>
      Backported-to-NX-by: 's avatarUlrich Sibiller <uli42@gmx.de>
      ca741177
    • Ulrich Sibiller's avatar
      Keyboard.c: nullify freed pointers · 340de78e
      Ulrich Sibiller authored
      While trying to properly free memory allocated by XKB I accidently
      called nxagentFreeKeyboardDeviceData twice and noticed it would cause
      a segfault here. As the other pointers are also nullified after
      being freed let's just do it here, too.
      340de78e
    • Ulrich Sibiller's avatar
      Screen.c: Fix: make sure RRCloseScreen is being called · 3b06ad51
      Ulrich Sibiller authored
      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)
      3b06ad51
    • Ulrich Sibiller's avatar
      Screen.c: correctly free stuff in nxagentCloseScreen · 0f8dbbab
      Ulrich Sibiller authored
      fixes a memory leak:
      
      ==19074== 2 bytes in 1 blocks are definitely lost in loss record 8 of 313
      ==19074==    at 0x483577F: malloc (vg_replace_malloc.c:299)
      ==19074==    by 0x1FD83D: fbAllocatePrivates (fballpriv.c:79)
      ==19074==    by 0x20A666: fbSetupScreen (fbscreen.c:110)
      ==19074==    by 0x20A666: fbScreenInit (fbscreen.c:300)
      ==19074==    by 0x1DEA4C: nxagentOpenScreen (Screen.c:1356)
      ==19074==    by 0x16D7F8: AddScreen (dispatch.c:4257)
      ==19074==    by 0x1DA0CF: InitOutput (Init.c:397)
      ==19074==    by 0x14DCC2: main (main.c:280)
      0f8dbbab
    • Ulrich Sibiller's avatar
      xkb: initialize tsyms · 308824ba
      Ulrich Sibiller authored
      Backport of this commit:
      
        commit b2167015043a458e9cf93b827b43eb5b7c552ce9
        Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
        Date:   Sat Nov 4 23:06:27 2017 +0100
      
          xkb: initialize tsyms
      
          This fixes some “Conditional jump depends on uninitialized value(s)”
          errors spotted by valgrind.
      Reviewed-by: 's avatarEric Engestrom <eric.engestrom@imgtec.com>
      Signed-off-by: 's avatarGiuseppe Bilotta <giuseppe.bilotta@gmail.com>
      308824ba
    • Ulrich Sibiller's avatar
      Rootless.c: improve TEST/WARN/DEBUG outout · 6d00a387
      Ulrich Sibiller authored
      by adding [] around values as almost everywhere
      6d00a387
    • Ulrich Sibiller's avatar
      Pixmap.c: fix comment phrasing/spelling · 2b25eb3d
      Ulrich Sibiller authored
      2b25eb3d
    • Ulrich Sibiller's avatar
      Window.c: add missing comment about nxagentConfiguredWindowList · 1bfafc12
      Ulrich Sibiller authored
      was in inital version of 6ce9fb5f but got lost
      during some rebasing/cherry-picking preceeding the pull request.
      1bfafc12
    • Ulrich Sibiller's avatar
      dix/window.c: fix compiler warning · 1a8de635
      Ulrich Sibiller authored
      Window.c:3827:46: warning: array subscript 128 is above array bounds of ‘StoringPixmapRec *[128]’ {aka ‘struct <anonymous> *[128]’} [-Warray-bounds]
                     i, (void *) nxagentBSPixmapList[i]);
      1a8de635
  2. 12 Jun, 2019 7 commits
    • Ulrich Sibiller's avatar
      NXshm.c: remove left-overs from patch · 3900ba3f
      Ulrich Sibiller authored
      format was broken, would not compile
      3900ba3f
    • Ulrich Sibiller's avatar
      b961e190
    • Ulrich Sibiller's avatar
      mi: Hush an almost certainly bogus warning · 28e42b3b
      Ulrich Sibiller authored
        commit 57e872301f5e836be2efb8f952f9c9711650b447
        Author: Adam Jackson <ajax@redhat.com>
        Date:   Thu Apr 5 13:07:09 2018 -0400
      
          mi: Hush an almost certainly bogus warning
      
          In file included from ../mi/miexpose.c:83:
          ../mi/miexpose.c: In function ‘miHandleExposures’:
          ../include/regionstr.h:174:22: warning: ‘expBox.y2’ may be used uninitialized in this function [-Wmaybe-uninitialized]
               (_pReg)->extents = *(_pBox);
               ~~~~~~~~~~~~~~~~~^~~~~~~~~~
          ../mi/miexpose.c:139:12: note: ‘expBox.y2’ was declared here
               BoxRec expBox;
                      ^~~~~~
      
          etc. It's initialized if (extents), and then only read if (extents),
          but gcc doesn't seem to figure that out. Whatever, bzero it to be
          explicit.
      Signed-off-by: 's avatarAdam Jackson <ajax@redhat.com>
      Acked-by: 's avatarKeith Packard <keithp@keithp.com>
      28e42b3b
    • Ulrich Sibiller's avatar
      Window.c: Drop defines CWParent and CWStackingOrder · 9f5ddede
      Ulrich Sibiller authored
      They were just aliases to already existing defines and were not used
      stringently. So we had mix of aliased and non-aliased uses which is
      confusing when trying to understand the code...
      9f5ddede
    • Ulrich Sibiller's avatar
      Window.c: remove leftover (commented) code · a3e0376f
      Ulrich Sibiller authored
      This was eventually replaced by nxagentAddConfiguredWindow(pWin,
      CW_Map) some lines below which is just leading to the same code being
      executed some time later.
      
      (nxagentAddConfiguredWindow() will add a window to a
      list. nxagentFlushConfiguredWindow() is called at certain points to
      update all windows in that list in one go. "update" here means calling
      XConfigureWindow() or XMapWindow() on the real display.)
      a3e0376f
    • Ulrich Sibiller's avatar
      NXwindow.c: fix compiler warning · d8f5e647
      Ulrich Sibiller authored
      NXwindow.c:265:27: warning: ‘%d’ directive writing between 1 and 11 bytes into a region of size 10 [-Wformat-overflow=]
             sprintf(artsd_port,"%d", nPort);
                                 ^~
      NXwindow.c:265:26: note: directive argument in the range [-2147476648, 2147483647]
             sprintf(artsd_port,"%d", nPort);
                                ^~~~
      NXwindow.c:265:7: note: ‘sprintf’ output between 2 and 12 bytes into a destination of size 10
             sprintf(artsd_port,"%d", nPort);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      d8f5e647
    • Ulrich Sibiller's avatar
      Remove the Must_have_memory hack. · a765857a
      Ulrich Sibiller authored
      We are not using any alloc function that respects that variable, so
      lets drop it. Backport of this commit:
      
        commit 0ce61e21d6d7dcca0090e319bbcdb678570f2c3f
        Author: Adam Jackson <ajax@redhat.com>
        Date:   Fri Oct 3 16:05:19 2008 -0400
      
          Remove the Must_have_memory hack.
      
          Also remove an astonishing amount of misunderstanding of how casts work.
      a765857a
  3. 11 Jun, 2019 23 commits