Bug#215110: apache: Apache upgrade corrupting entries in httpd.conf
Package: apache
Version: 1.3.28-3
Severity: normal
Followup-For: Bug #215110
I'm still being affected by the same thing.
I previously had this further up in httpd.conf:
SetEnvIf User-Agent Teleport go_away
I noticed that it seems to have been affected by a previous upgrade by
way of being changed to:
SetEnvIf User-Agent TelePort 80 User-Agent
and at the same time for some weird reason the
Port 80
line was being changed to:
Port 80 User-Agent
I've corrected the "SetEnvIf" line and now in this verion of the apache
package it is no longer changed, BUT...
If I do the 'install -f' I find I now get the
Port 80
line changed to:
Port User-Agent
And I end up getting this:
8< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# apt-get install -f
Reading Package Lists... Done
Building Dependency Tree... Done
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
Need to get 0B of archives.
After unpacking 0B of additional disk space will be used.
Setting up apache (1.3.28-3) ...
Configuration syntax error detected. Not reloading.
Syntax error on line 236 of /etc/apache/httpd.conf:
The port number "User-Agent" is outside the appropriate range (i.e., 1..65535).
invoke-rc.d: initscript apache, action "start" failed.
dpkg: error processing apache (--configure):
subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
apache
E: Sub-process /usr/bin/dpkg returned an error code (1)
8< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If I change the
SetEnvIf User-Agent Teleport go_away
line to NOT have the string "port" in it e.g.
SetEnvIf User-Agent FIX-ME-LATER go_away
and run the 'install -f' the upgrade works fine:
8< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# apt-get install -f
Reading Package Lists... Done
Building Dependency Tree... Done
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
Need to get 0B of archives.
After unpacking 0B of additional disk space will be used.
Setting up apache (1.3.28-3) ...
Starting web server: apache.
8< - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This looks like a case of careless/dangerous global text matching to me.
It seems that part of the upgrade process is doing a global replace on
the string:
/Port (.*)$/i
where it should probably be looking for:
(in Perl speak)
/^[\s*]Port ([0-9]+)$/i
i.e. start of line,
then none or more spaces/tabs,
then "Port ",
then a number,
then the end of line
instead.
It seems this is only happening if it has matched the string
/port /i
earlier in the file.
If it HAS matched it, it now seems to cache the SECOND ARGUMENT on the
line which matches
/Port /i
i.e. Normally finding /^Port 80/ this would be "80" but when it saw:
/SetEnvIf User-Agent Teleport go_away/
this was "User-Agent"
and uses that cached value as the "port number" to write after "Port "
in the generated output.
I'm sorry I don't know enough about the way that the setup process works
to find the actual piece of code which is doing this.
I hope this helps.
Kind regards,
John
-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux aotea 2.4.22-1-686-smp #5 SMP Sat Oct 4 14:35:05 EST 2003 i686
Locale: LANG=C, LC_CTYPE=en_GB
Versions of packages apache depends on:
ii apache-common 1.3.28-3 Support files for all Apache webse
ii debconf 1.3.15 Debian configuration management sy
ii dpkg 1.10.15 Package maintenance system for Deb
ii libc6 2.3.2-8 GNU C Library: Shared libraries an
ii libdb4.1 4.1.25-9 Berkeley v4.1 Database Libraries [
ii libexpat1 1.95.6-6 XML parsing C library - runtime li
ii libmagic1 4.04-1 File type determination library us
ii logrotate 3.6.5-2 Log rotation utility
ii mime-support 3.23-1 MIME files 'mime.types' & 'mailcap
ii perl [perl5] 5.8.1-2 Larry Wall's Practical Extraction
Reply to: