Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 28021
Alias:
Product:
Component:
Status: RESOLVED
Resolution: FIXED
Assigned To: Martin Schlemmer (RETIRED) <azarah@gentoo.org>
Hardware:
OS:
Version:
Priority:
Severity:
Reporter: Guido Imperiale <crusaderky@gmail.com>
Add CC:
CC:
Remove selected CCs
URL:
Summary:
Status Whiteboard:
Keywords:

Filename Description Type Creator Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 28021 depends on: Show dependency tree
Bug 28021 blocks:
Votes: 0    Show votes for this bug    Vote for this bug

Additional Comments: (this is where you put emerge --info)


Not eligible to see or edit group visibility for this bug.






View Bug Activity   |   Format For Printing   |   XML   |   Clone This Bug


Description:   Opened: 2003-09-05 14:25 0000
I think I've found a bug in zlib's gzprintf. I'm running an up-to-date gentoo
(without 
~x86 flags). I've already sent this issue to the zlib mantainers. 

This is the test program: 

** gztest.c ** 

#include <zlib.h> 
#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
        gzFile gzfp = gzopen("testgz.gz","wb"); 
        gzprintf(gzfp,"A%c%c%cB",1,0,1); 
        gzclose(gzfp); 

        system("gunzip -f testgz.gz"); 

        FILE * fp = fopen("testplain","wb"); 
        fprintf(fp,"A%c%c%cB",1,0,1); 
        fclose(fp); 
} 

** end of file ** 

now compile and launch it: 
#gcc -o gztest gztest.c -lz 
#./gztest 

and examine the two files with an hex editor. 
gzprintf considers a %c argument with value 0 as an end-of-string in the 
format string. 

The obvious workaround is to use gzputc, or sprintf and then gzwrite. 

NOTE: I'm not sure, but I think this doesn't happen with RedHat 9. Please
check. 


Reproducible: Always
Steps to Reproduce:
1.
2.
3.



Portage 2.0.49-r3 (default-x86-1.4, gcc-3.2.3, glibc-2.3.2-r1, 2.4.22) 
================================================================= 
System uname: 2.4.22 i686 AMD Athlon(TM) XP 2000+ 
ACCEPT_KEYWORDS="x86" 
AUTOCLEAN="yes" 
CFLAGS="-O3 -mcpu=athlon-xp -march=athlon-xp -fforce-addr -fomit-frame-pointer 
-funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 
-fexpensive-optimizations -mmmx -msse -m3dnow -mfpmath=sse" 
CHOST="i686-pc-linux-gnu" 
COMPILER="gcc3" 
CONFIG_PROTECT="/etc /var/qmail/control /usr/kde/2/share/config 
/usr/kde/3/share/config /usr/X11R6/lib/X11/xkb /usr/kde/3.1/share/config 
/usr/share/config" 
CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" 
CXXFLAGS="-O3 -mcpu=athlon-xp -march=athlon-xp -fforce-addr
-fomit-frame-pointer 
-funroll-loops -frerun-cse-after-loop -frerun-loop-opt -falign-functions=4 
-fexpensive-optimizations -mmmx -msse -m3dnow -mfpmath=sse" 
DISTDIR="/usr/portage/distfiles" 
FEATURES="sandbox ccache autoaddcvs" 
GENTOO_MIRRORS="http://gentoo.oregonstate.edu 
http://distro.ibiblio.org/pub/Linux/distributions/gentoo" 
MAKEOPTS="-j2" 
PKGDIR="/usr/portage/packages" 
PORTAGE_TMPDIR="/var/tmp" 
PORTDIR="/usr/portage" 
PORTDIR_OVERLAY="" 
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" 
USE="x86 oss apm avi crypt encode foomaticdb jpeg libg++ mad mikmod mpeg 
ncurses nls pdflib png quicktime spell truetype xmms xv zlib gdbm berkdb slang 
readline arts tetex bonobo svga java X sdl gpm tcpd pam libwww ssl perl python
esd 
imlib oggvorbis gnome gtk qt kde motif opengl 3dnow aalib cdr cups directfb dga
doc 
dvb faad fbcon ggi gif gphoto2 gtk2 guile jikes lcms ldap mmx mozaccess 
mozcalendar mozilla mozp3p mozsvg mozxmlterm mysql offensive parse-clocks 
samba scanner slp sse tcltk tiff v4l wmf wxwindows xml xml2 xvid"

------- Comment #1 From Denys Duchier 2003-09-06 05:03:30 0000 -------
The fix for this bug is to remove CFLAGS="${CFLAGS}" which appears 
as an argument to emake.  Supplying it overrides the additions 
made by configure.  As a consequence the #ifdefs of the security 
patch are not taken into account. 

------- Comment #2 From Guido Imperiale 2003-09-06 12:21:22 0000 -------
Let me see if I got it straight:
zlib-1.1.4 has a security bug that you have fixed with a patch. However, if I specify any CFLAGS in make.conf when building zlib, that patch isn't applied since my CFLAGS overwrite the CFLAGS="-DAPPLY_SECURITY_PATCH" or like that supplied by the ebuild (or the configure) file.

As a result, *no user* has the patch installed, as *all users* use their own CFLAGS. (I *really* hope I misunderstood).
So why in heaven don't you just *append* your CFLAGS to the global ones????

------- Comment #3 From Denys Duchier 2003-09-06 12:59:50 0000 -------
firstly: it's not my patch.  I am just helping track down the problem 
you reported. :-) 
 
the ebuild contains the lines: 
 
	./configure --shared --prefix=/usr || die 
 
	append-flags -fPIC 
 
	emake CFLAGS="${CFLAGS}" || die 
 
the argument CFLAGS="${CFLAGS}" precisely takes into account the user's 
CFLAGS, but overrides the additions computed by configure (which is patched) 
and which are intended to select the correct #ifdef alternatives of some 
parts of the security patch.  It is this argument which should be removed. 
I have no idea why it was put in in the first place. 

------- Comment #4 From Martin Schlemmer (RETIRED) 2003-10-27 12:15:01 0000 -------
Fixed in -r2, thanks.

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug