#!/bin/sh
#!/bin/sh

# Bugfix TP #91998.
# Set correct permissions on the php session path

php_ini_list="/etc/php.ini /etc/php5/apache2/php.ini \
			/etc/php5/cli/php.ini /etc/php5/fastcgi/php.ini /etc/php5/cgi/php.ini"

get_phpini_var()
{
	local php_ini="$1"
	local var="$2"

        cat $php_ini | perl -n -e 'next if(/^;/);  print $5 if(/^(\s*)'$var'(\s*)=(\s*)("*)(.*?)("|\s|;)/);'
}

set_php_session_save_path_perms()
{
	local php_ini="$1"

	[ -r "$php_ini" ] || return

	if [ -n "$php_ini" -a -L "$php_ini" ]; then
		php_ini=`realpath $php_ini`
	fi

	local session_save_path=`php -c "$php_ini" -r "echo ini_get('session.save_path');" 2>/dev/null || get_phpini_var "$php_ini" "session.save_path"`
        [ -n "$session_save_path" -a -d "$session_save_path" ] || return
        [ "$session_save_path" = "/var/lib/php/session" -o "$session_save_path" = "/var/lib/php5" ] || return

	chown root:0 $session_save_path
	chmod 1733 $session_save_path
}

for i in $php_ini_list; do
	set_php_session_save_path_perms $i
done

exit 0
