CDE has relied upon catgets() implementations following a relaxed
interpretation of the XPG internationalization standard that ignored
-1, the standard error value returned by catopen, as the catalog
argument. However, this same behavior causes segmentation faults with
the musl C library.
This patch:
- Centralizes (with the exception of ToolTalk) all calls to catopen(),
catgets(), and catclose() through MsgCat within the DtSvc library.
- Prevents calls to catgets() and catclose() that rely upon
undefined behavior.
- Eliminates a number of bespoke catgets() wrappers, including multiple
redundant caching implementations designed to work around a design
peculiarity in HP/UX.
- Eases building CDE without XPG internationalization support by providing
the appropriate macros.
Remove calls to bogus utility functions in cases where the user is
root and the filesystem in question is an NFS filesystem.
For now, __linux___ and CSRG_BASED machines will use statfs to
determine whether to test delete-ability. For other systems, just do
the create/delete test always if the user is root.
dtfile makes use of ustat(2) on certain systems. This call has been
deprecated in glibc for a while and now, as of glibc-2.28, it has been
removed. The recommended replacement is to use statfs(2).
The real issue seems to be a bug in Motif. The background color for
these tree icons is always black. Depending on what Palette you have
selected, it's possible for the foreground color to be black. When
this happens, you will see a black square since both fg and bg are now
black.
You can select another Palette that works (ie: foreground is white)
and the problem goes away. So, for now, we always force a white
foreground color so the actual symbols are visible in tree mode.
Original implementation:
Commit: 7fa35cA
dtfile: coverity CIDs 88363,88405,89140,89612; insecure readlink
That commit caused dtfile to be unable to resolve symbolic links and
was later reverted. This commit reimplements the fixes correctly, and
should hopefully still resolve the coverity issues as well.