From 8961bc4b71723477a3b4a837a1d9c25c1b860b9e Mon Sep 17 00:00:00 2001 From: Diego Rondini Date: Fri, 29 Apr 2016 12:24:09 +0200 Subject: base-files: add some safety checks in profile Add some safety checks when sourcing files in /etc/profile.d/, in particular: - source only *.sh files, not every file. This is the practice in use in both Fedora and Debian/Ubuntu (see https://help.ubuntu.com/community/EnvironmentVariables#A.2Fetc.2Fprofile.d.2F.2A.sh); - check the input is actually a file and is readable. This check is especially important if profile.d is empty, as "*.sh" will get expanded only if profile.d is not empty. Previously if profile.d was present but empty, "/etc/profile.d/*" was sourced causing errors on login and breaking stuff, for example X startup. Signed-off-by: Diego Rondini Signed-off-by: Ross Burton --- meta/recipes-core/base-files/base-files/profile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'meta/recipes-core') diff --git a/meta/recipes-core/base-files/base-files/profile b/meta/recipes-core/base-files/base-files/profile index 53c2680409..e98e786b12 100644 --- a/meta/recipes-core/base-files/base-files/profile +++ b/meta/recipes-core/base-files/base-files/profile @@ -20,8 +20,10 @@ if [ "$PS1" ]; then fi if [ -d /etc/profile.d ]; then - for i in /etc/profile.d/* ; do - . $i + for i in /etc/profile.d/*.sh ; do + if [ -f $i -a -r $i ]; then + . $i + fi done unset i fi -- cgit v1.2.3