1. 03 Nov, 2020 12 commits
    • Ulrich Sibiller's avatar
      nx-libs.spec: Set python shebang to python3 on fedora and rhel8 · 5bd72aec
      Ulrich Sibiller authored
      *** ERROR: ambiguous python shebang in /usr/bin/nxdialog: #!/usr/bin/env
      python. Change it to python3 (or python2) explicitly.
      
      Fedora offers a pythfix.py but I could not test with that so I simply
      used sed...
      
      Fixes ArcticaProject/nx-libs#955
      5bd72aec
    • Ulrich Sibiller's avatar
      1701a4a4
    • Ulrich Sibiller's avatar
      Clipboard.c: add missing ifdefs · ebee6af0
      Ulrich Sibiller authored
      ebee6af0
    • Ulrich Sibiller's avatar
      Compext.c: scope improvements · 06173efd
      Ulrich Sibiller authored
      06173efd
    • Ulrich Sibiller's avatar
      GCs.h: fix typo · ee379d3a
      Ulrich Sibiller authored
      ee379d3a
    • Ulrich Sibiller's avatar
      Atoms.c: drop double include · 8bfe760d
      Ulrich Sibiller authored
      8bfe760d
    • Ulrich Sibiller's avatar
      Compext.c: use SAFE_free macro · 447ee157
      Ulrich Sibiller authored
      447ee157
    • Ulrich Sibiller's avatar
      Clipboard.c: fix missing ) · edb5a918
      Ulrich Sibiller authored
      edb5a918
    • Mike Gabriel's avatar
      ced973e3
    • Ulrich Sibiller's avatar
      NXdixfonts.c: fix memory leak · db45683a
      Ulrich Sibiller authored
      ==15332== 2,500 (96 direct, 2,404 indirect) bytes in 6 blocks are definitely lost in loss record 324 of 342
      ==15332==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==15332==    by 0x5748B9E: FontFileStartListFonts (in /usr/lib/x86_64-linux-gnu/libXfont.so.1.4.1)
      ==15332==    by 0x5748C4A: FontFileStartListFontsAndAliases (in /usr/lib/x86_64-linux-gnu/libXfont.so.1.4.1)
      ==15332==    by 0x42859A: nxdoListFontsAndAliases (NXdixfonts.c:1163)
      ==15332==    by 0x42C0E0: nxOpenFont (NXdixfonts.c:1541)
      ==15332==    by 0x43392E: ProcOpenFont (NXdispatch.c:902)
      ==15332==    by 0x434585: Dispatch (NXdispatch.c:482)
      ==15332==    by 0x40EF77: main (main.c:355)
      
      FontFileStartListFonts[AndAliases]() allocates some private data. This
      data is used by subsequent calls of FontFileListNextFontOrAlias() in a
      loop. (Only) the last call to that function will free() the private
      data and return with BadFontName.  FontFileListNextFontOrAlias() is
      the only libXfont function that free()s the private data.
      
      In nxagent the loop is exited as soon as a font exists both locally
      and remote. Therefore the private data would never be free()d.
      
      Solution: do not break the loop but store the first matching result
      and let the loop run to the end, ignoring all following results.
      
      Disadvantage: this can mean hundreds of extra iterations for
      nothing. I have done no investigation of the time penalty this might
      cause.
      
      Unfortunately this is the only clean way I have found so far.
      
      An unclean solution has also been implemented. It can be activated by
      defining BREAK_XFONT_LOOP. In that case the private data is handled in
      nxagent by taking assumptions about its structure (taken from the
      libXfont source). That will break if libXfont changes its internal
      handling of the private. Therefore it is discouraged.
      
      An third alternative would be to drop using libXfont from the
      system. Instead fork libXfont to the nx-libs tree, add some patches
      link to that library statically.
      
      Fixes ArcticaProject/nx-libs#586
      db45683a
    • Mike Gabriel's avatar
      14df32cd
    • Ulrich Sibiller's avatar
      yConnDis.c: fix memory leak · 12b22e97
      Ulrich Sibiller authored
       Direct leak of 3 byte(s) in 1 object(s) allocated from:
       #0 0xb79e85d4 in __interceptor_malloc (/lib/i386-linux-gnu/libasan.so.5+0xeb5d4)
       #1 0xb770b635 in copystring /home/uli/work/nx/nx-libs/nx-X11/lib/src/ConnDis.c:96
       #2 0xb770ba56 in _X11TransConnectDisplay /home/uli/work/nx/nx-libs/nx-X11/lib/src/ConnDis.c:229
       #3 0xb776b4fd in XOpenDisplay /home/uli/work/nx/nx-libs/nx-X11/lib/src/OpenDis.c:215
       #4 0x63e2fd in nxagentInternalOpenDisplay /home/uli/work/nx/nx-libs/nx-X11/programs/Xserver/hw/nxagent/Display.c:608
       #5 0x63fa03 in nxagentOpenDisplay /home/uli/work/nx/nx-libs/nx-X11/programs/Xserver/hw/nxagent/Display.c:1140
       #6 0x694b5a in InitOutput /home/uli/work/nx/nx-libs/nx-X11/programs/Xserver/hw/nxagent/Init.c:305
       #7 0x5f7b11 in main /home/uli/work/nx/nx-libs/nx-X11/programs/Xserver/dix/main.c:278
       #8 0xb6f04b40 in __libc_start_main ../csu/libc-start.c:308
      
      I have not investigated the exact location where an XFree() was missing but added multiple
      Xfree() calls whereever appropriate.
      
      Fixes ArcticaProject/nx-libs#951
      12b22e97
  2. 02 Nov, 2020 2 commits
  3. 18 Oct, 2020 1 commit
  4. 17 Oct, 2020 25 commits