Package: squid
Version: 2.7.STABLE9-4
Severity: normal
Tags: patch
User: [email protected]
Usertags: origin-ubuntu oneiric ubuntu-patch
*** /tmp/tmpvb3dgG
In Ubuntu, the attached patch was applied to achieve the following:
If the directive 'cache_dir null no-cache' (i.e. don't cache anything)
is present in the squid configuration the config and postinst scripts
do not deal with the scenario and attempt to stat and chown 'no-cache'.
This fix simply checks that target of any ownership changes is actually
a valid target to change.
* debian/postinst, debian/config:
- Fix upgrade failures where cache_dir type of null is in use by
checking that cache_dir points at a real directory or symbolic
link (LP: #800468).
Thanks for considering the patch.
-- System Information:
Debian Release: wheezy/sid
APT prefers oneiric-updates
APT policy: (500, 'oneiric-updates'), (500, 'oneiric-security'), (500,
'oneiric')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.38-8-generic (SMP w/8 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
=== modified file 'debian/changelog'
=== modified file 'debian/config'
--- debian/config 2010-07-02 13:43:09 +0000
+++ debian/config 2011-06-24 11:01:36 +0000
@@ -61,10 +61,13 @@
dir=`grepconf2 cache_dir /var/spool/squid`
usr=`grepconf cache_effective_user proxy`
grp=`grepconf cache_effective_group proxy`
-
- if [ "$(stat -L -c %U $dir)" != "$usr" ] || [ "$(stat -L -c %G $dir)"
!= "$grp" ] ; then
- db_input high "squid/fix_cachedir_perms" || true
- db_go
+
+ # Check its a directory or link before fixing perms
+ if [ -d $dir ] || [ -L $dir ]; then
+ if [ "$(stat -L -c %U $dir)" != "$usr" ] || [ "$(stat -L -c %G
$dir)" != "$grp" ] ; then
+ db_input high "squid/fix_cachedir_perms" || true
+ db_go
+ fi
fi
fi
}
=== modified file 'debian/postinst'
--- debian/postinst 2011-03-08 13:42:01 +0000
+++ debian/postinst 2011-06-24 11:57:26 +0000
@@ -126,12 +126,17 @@
if [ "$FIXLINES" = "false" ]; then
echo "squid.conf contains 2.2.5 syntax - not doing anything!"
else
- if [ "$(stat -c %U $dir)" != "$usr" ] || [ "$(stat -c
%G $dir)" != "$grp" ] ; then
- db_get "squid/fix_cachedir_perms"
- if [ "$RET" = "true" ] ; then
- chown $usr:$grp $dir -R
+ # cache_dir type might be 'null' so check that
+ # it points to a valid directory or link before deciding
+ # what todo with permissions
+ if [ -d $dir ] || [ -L $dir ]; then
+ if [ "$(stat -c %U $dir)" != "$usr" ] || [
"$(stat -c %G $dir)" != "$grp" ] ; then
+ db_get "squid/fix_cachedir_perms"
+ if [ "$RET" = "true" ] ; then
+ chown $usr:$grp $dir -R
+ fi
+ db_reset "squid/fix_cachedir_perms"
fi
- db_reset "squid/fix_cachedir_perms"
fi
if [ "$(stat -c %U /var/log/squid)" != "$usr" ] || [
"$(stat -c %G /var/log/squid)" != "$grp" ] ; then
# Check if there is an override of ownership