From ff49596df417830969edd78a69c0e3dc8689bea8 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 4 Mar 2025 11:12:32 +0000 Subject: [PATCH] weston-init: improve XDG_RUNTIME_DIR fallback creation Sanity-check the permissions of the directory already exists, and clean up the creation code. (From OE-Core rev: a977c2a61dfabed9be061d742797248448aa5ade) Signed-off-by: Ross Burton Signed-off-by: Mathieu Dubois-Briand Signed-off-by: Richard Purdie --- .../wayland/weston-init/weston-start | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/meta/recipes-graphics/wayland/weston-init/weston-start b/meta/recipes-graphics/wayland/weston-init/weston-start index 01670cd4f5..3b13a0047a 100755 --- a/meta/recipes-graphics/wayland/weston-init/weston-start +++ b/meta/recipes-graphics/wayland/weston-init/weston-start @@ -58,14 +58,19 @@ fi if test -z "$XDG_RUNTIME_DIR"; then export XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` - if ! test -d "$XDG_RUNTIME_DIR"; then - mkdir --parents $XDG_RUNTIME_DIR - chmod 0700 $XDG_RUNTIME_DIR - fi - if [ -n "$WESTON_USER" ] - then - chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR + if test -d "$XDG_RUNTIME_DIR"; then + # Check permissions on existing directory + if [ "$(stat -c %u-%a "$XDG_RUNTIME_DIR")" != "$(id -u ${WESTON_USER})-700" ]; then + echo "ERROR: $XDG_RUNTIME_DIR has incorrect permissions" + exit 1 + fi + else + mkdir --mode 0700 --parents $XDG_RUNTIME_DIR + if [ -n "$WESTON_USER" ] + then + chown $WESTON_USER:$WESTON_GROUP $XDG_RUNTIME_DIR + fi fi fi -su -c "XDG_RUNTIME_DIR=/run/user/`id -u ${WESTON_USER}` weston $weston_args --log=/tmp/weston.log" $WESTON_USER +su -c "XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR weston $weston_args --log=/tmp/weston.log" $WESTON_USER