Bug in gcc 2.7.2.3, 2.8.1, egcs and pgcc
Gregory A Lundberg
lundberg@vr.net
Mon Oct 5 15:11:00 GMT 1998
On Mon, 5 Oct 1998, Bernhard Rosenkraenzer wrote:
> Date: Mon, 5 Oct 1998 21:28:16 +0200 (CEST)
> From: Bernhard Rosenkraenzer <bero@microsoft.sucks.eu.org>
> To: egcs-bugs@cygnus.com,
pgcc-list@desk.nl,
bug-gcc@prep.ai.mit.edu
> Cc: lundberg@vr.net
> Subject: Bug in gcc 2.7.2.3, 2.8.1, egcs and pgcc
>
> I believe I have found a bug present in all gcc 2.7.2.3, gcc 2.8.1, egcs 1.1,
> pgcc 1.1, egcs and pgcc 19980921 - gcc seems to assume a result of an if
> command is false a bit too early.
>
> The sample file is taken from BeroFTPD 1.1.12 (old) and 1.1.13 (new).
>
> While both procedures do exactly the same, the old one fails, the new one
> works (by splitting an if in two parts, using a variable).
> The problem with the old one is that, for example, if "noretrieve core" is
> specified in ftpaccess [-> entry->arg[0] == "core"], and a user tries to
> get a core file somewhere [-> lbasename(realname) == "core" ], he is
> permitted to do so (return 0 rather than reply... return 1).
>
> This happens on an ix86 running Linux; it's not an optimization bug (happens
> with -O0 as only option, as well).
>
> LLaP
> bero
>
>
In the 'original' code we see:
*(entry->arg[i]) = '/'
as the first clause of the if statement. This should read
*(entry->arg[i]) == '/'
Fix that and re-test. It's the = vs == typo I was referring to in VR8.5
patch to wu-ftpd.
--
Gregory A Lundberg Senior Partner, VRnet Company
1441 Elmdale Drive lundberg@vr.net
Kettering, OH 45409-1615 USA 1-800-809-2195
More information about the Gcc-bugs
mailing list