Trusted Solaris support (libgnome's use of mkdir)



libgnome uses the failure of mkdir() and the errno of EEXIST to
determine if .gnome2 and .gnome2_private exist. This works on TSOL if
the dir argument of mkdir() is a single level directory. If the first
argument of mkdir() is a multilevel directory (that exists) the
mkdir() fails and errno is set to EINVAL. 

HP-UX SecureWare (and presumably other SecureWare systems) do not act
this way (they return EEXIST for ML directories). I hope SELinux and
Trusted BSD follow suit ...

My patch is Trusted Solaris specific, so I haven't included it. A
simple, but unfortunate/wrong, fix is to check for EINVAL along with 
EEXIST in libgnome_userdir_setup() (gnome-init.c).

I don't expect Trusted Solaris support to be upstreamed, but this may
be usefull for anyone else implementing GNOME apps on Trusted Solaris.

-- 
Brenden C Grace



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]