xfree86: rename Xorg.bin to Xorg

Hans de Goede hdegoede at redhat.com
Mon Dec 29 02:11:29 PST 2014


Hi,

On 16-12-14 05:19, Peter Hutterer wrote:
> If the suid wrapper is enabled, /usr/bin/Xorg is just a shell script that
> execs either /usr/libexec/Xorg.bin directly or the Xorg.wrap binary which then
> execve's /usr/libexec/Xorg.bin.
>
> Either way, we end up with Xorg.bin, which is problematic for two reasons:
> * ps shows the command as Xorg.bin
> * _COMM and _EXE in systemd's journal will both show Xorg.bin as well
>
> There's not much we can do about the path, but having the actual command stay
> as Xorg means better compatibility to existing scripts. And, the reason for
> this patch: the command
>     journalctl _COMM=Xorg
> works universally, regardless of whether the wrapper is used or not.
>
> CC: Hans de Goede <hdegoede at redhat.com>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> Reviewed-by: Keith Packard <keithp at keithp.com>

Looks good:

Acked-by: Hans de Goede <hdegoede at redhat.com>

Regards,

Hans


>
> ---
> configure.ac                 | 2 +-
>   hw/xfree86/Makefile.am       | 2 +-
>   hw/xfree86/Xorg.sh.in        | 4 ++--
>   hw/xfree86/man/Xorg.wrap.man | 2 +-
>   hw/xfree86/xorg-wrapper.c    | 6 +++---
>   5 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 96524c5..b593fc7 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -923,7 +923,7 @@ if test "x$SUID_WRAPPER" = xyes; then
>           PKG_CHECK_MODULES([LIBDRM], $LIBDRM)
>           dnl This is a define so that if some platforms want to put the wrapper
>           dnl somewhere else this can be easily changed
> -        AC_DEFINE_DIR(SUID_WRAPPER_DIR, libexecdir, [Where to install Xorg.bin and Xorg.wrap])
> +        AC_DEFINE_DIR(SUID_WRAPPER_DIR, libexecdir, [Where to install the Xorg binary and Xorg.wrap])
>           SETUID="no"
>   fi
>   AM_CONDITIONAL(SUID_WRAPPER, [test "x$SUID_WRAPPER" = xyes])
> diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
> index d46bf0a..27f2cc6 100644
> --- a/hw/xfree86/Makefile.am
> +++ b/hw/xfree86/Makefile.am
> @@ -106,7 +106,7 @@ if INSTALL_SETUID
>   endif
>   if SUID_WRAPPER
>   	$(MKDIR_P) $(DESTDIR)$(SUID_WRAPPER_DIR)
> -	mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.bin
> +	mv $(DESTDIR)$(bindir)/Xorg $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg
>   	${INSTALL} -m 755 Xorg.sh $(DESTDIR)$(bindir)/Xorg
>   	-chown root $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap && chmod u+s $(DESTDIR)$(SUID_WRAPPER_DIR)/Xorg.wrap
>   endif
> diff --git a/hw/xfree86/Xorg.sh.in b/hw/xfree86/Xorg.sh.in
> index cef4859..4814135 100644
> --- a/hw/xfree86/Xorg.sh.in
> +++ b/hw/xfree86/Xorg.sh.in
> @@ -1,11 +1,11 @@
>   #!/bin/sh
>   #
> -# Execute Xorg.wrap if it exists otherwise execute Xorg.bin directly.
> +# Execute Xorg.wrap if it exists otherwise execute Xorg directly.
>   # This allows distros to put the suid wrapper in a separate package.
>
>   basedir=@SUID_WRAPPER_DIR@
>   if [ -x "$basedir"/Xorg.wrap ]; then
>   	exec "$basedir"/Xorg.wrap "$@"
>   else
> -	exec "$basedir"/Xorg.bin "$@"
> +	exec "$basedir"/Xorg "$@"
>   fi
> diff --git a/hw/xfree86/man/Xorg.wrap.man b/hw/xfree86/man/Xorg.wrap.man
> index 58937c7..11090f1 100644
> --- a/hw/xfree86/man/Xorg.wrap.man
> +++ b/hw/xfree86/man/Xorg.wrap.man
> @@ -33,7 +33,7 @@ Xorg.wrap \- Xorg X server binary wrapper
>   The Xorg X server may need root rights to function properly. To start the
>   Xorg X server with these rights your system is using a suid root wrapper
>   installed as __suid_wrapper_dir__/Xorg.wrap which will execute the real
> -X server which is installed as __suid_wrapper_dir__/Xorg.bin .
> +X server which is installed as __suid_wrapper_dir__/Xorg.
>   .PP
>   By default Xorg.wrap will autodetect if root rights are necessary, and
>   if not it will drop its elevated rights before starting the real X server.
> diff --git a/hw/xfree86/xorg-wrapper.c b/hw/xfree86/xorg-wrapper.c
> index 4ea4733..9ae8dec 100644
> --- a/hw/xfree86/xorg-wrapper.c
> +++ b/hw/xfree86/xorg-wrapper.c
> @@ -255,18 +255,18 @@ int main(int argc, char *argv[])
>           }
>       }
>
> -    snprintf(buf, sizeof(buf), "%s/Xorg.bin", SUID_WRAPPER_DIR);
> +    snprintf(buf, sizeof(buf), "%s/Xorg", SUID_WRAPPER_DIR);
>
>       /* Check if the server is executable by our real uid */
>       if (access(buf, X_OK) != 0) {
> -        fprintf(stderr, "%s: Missing execute permissions for %s/Xorg.bin: %s\n",
> +        fprintf(stderr, "%s: Missing execute permissions for %s/Xorg: %s\n",
>               progname, SUID_WRAPPER_DIR, strerror(errno));
>           exit(1);
>       }
>
>       argv[0] = buf;
>       (void) execv(argv[0], argv);
> -    fprintf(stderr, "%s: Failed to execute %s/Xorg.bin: %s\n",
> +    fprintf(stderr, "%s: Failed to execute %s/Xorg: %s\n",
>           progname, SUID_WRAPPER_DIR, strerror(errno));
>       exit(1);
>   }
>


More information about the xorg-devel mailing list