Source: netpbm-free Severity: important Tags: patch Please enabled hardened build flags through dpkg-buildflags.
Patches attached: netpbm-format1.patch, netpbm-format2.patch and netpbm-format3.patch fix missing format string exposed by the hardened build flags. netpbm-harden1.patch, netpbm-harden2.patch and netpbm-harden3.patch inject hardened build flags into the strange and convoluted build system of netpbm. Cheers, Moritz
diff -aur netpbm-free-10.0.orig/ppm/ppmtobmp.c netpbm-free-10.0/ppm/ppmtobmp.c --- netpbm-free-10.0.orig/ppm/ppmtobmp.c 2012-01-02 03:35:03.000000000 +0100 +++ netpbm-free-10.0/ppm/ppmtobmp.c 2012-01-02 03:36:25.000000000 +0100 @@ -149,7 +149,7 @@ { if (putc(v, fp) == EOF) { - pm_error(er_write); + pm_error("%s", er_write); } } @@ -158,7 +158,7 @@ { if (pm_writelittleshort(fp, v) == -1) { - pm_error(er_write); + pm_error("%s", er_write); } } @@ -169,7 +169,7 @@ { if (pm_writelittlelong(fp, v) == -1) { - pm_error(er_write); + pm_error("%s", er_write); } } Nur in netpbm-free-10.0/ppm: ppmtobmp.c~.
diff -aur netpbm-free-10.0.orig/pnm/fiasco/cwfa.c netpbm-free-10.0/pnm/fiasco/cwfa.c --- netpbm-free-10.0.orig/pnm/fiasco/cwfa.c 2004-01-05 11:39:56.000000000 +0100 +++ netpbm-free-10.0/pnm/fiasco/cwfa.c 2012-01-02 03:40:19.000000000 +0100 @@ -176,7 +176,7 @@ return 0; else { - fprintf (stderr, fiasco_get_error_message ()); + fprintf (stderr, "%s", fiasco_get_error_message ()); fprintf (stderr, "\n"); return 1; } Nur in netpbm-free-10.0/pnm/fiasco: cwfa.c~.
diff -aur netpbm-free-10.0.orig/pnm/fiasco/params.c netpbm-free-10.0/pnm/fiasco/params.c --- netpbm-free-10.0.orig/pnm/fiasco/params.c 2003-08-12 20:23:03.000000000 +0200 +++ netpbm-free-10.0/pnm/fiasco/params.c 2012-01-02 03:44:37.000000000 +0100 @@ -650,7 +650,7 @@ fprintf (stderr, "Usage: %s [OPTION]...%s\n", progname, non_opt_string ? non_opt_string : " "); if (synopsis != NULL) - fprintf (stderr, synopsis); + fprintf (stderr, "%s", synopsis); fprintf (stderr, "\n\n"); fprintf (stderr, "Mandatory or optional arguments to long options " "are mandatory or optional\nfor short options too. " Nur in netpbm-free-10.0/pnm/fiasco: params.c~.
diff -aur netpbm-free-10.0.orig/Makefile.config.in netpbm-free-10.0/Makefile.config.in --- netpbm-free-10.0.orig/Makefile.config.in 2003-08-28 22:12:30.000000000 +0200 +++ netpbm-free-10.0/Makefile.config.in 2012-01-02 03:32:23.000000000 +0100 @@ -102,7 +102,11 @@ # -ansi and -Werror should work too, but are not included # by default because there's no point in daring the build to fail. # -pedantic isn't a problem because it causes at worst a warning. -CFLAGS = -pedantic -O3 -Wall -Wno-uninitialized + +CFLAGS = `dpkg-buildflags --get CFLAGS` +CFLAGS += -pedantic -O3 -Wall -Wno-uninitialized +CFLAGS += `dpkg-buildflags --get CPPFLAGS` + # On DEC Tru64 4.0F (at least), you need -DLONG_32 for ppmtompeg. #Tru64: #CFLAGS = -O2 -std1 -DLONG_32 @@ -134,7 +138,7 @@ NEED_RUNTIME_PATH = N #NEED_RUNTIME_PATH = Y -LDFLAGS = +LDFLAGS = `dpkg-buildflags --get LDFLAGS` # Eunice users may want to use -noshare so that the executables can # run standalone: #LDFLAGS = -noshare Nur in netpbm-free-10.0: Makefile.config.in~.
diff -aur netpbm-free-10.0.orig/debian/rules netpbm-free-10.0/debian/rules --- netpbm-free-10.0.orig/debian/rules 2012-01-12 18:12:05.000000000 +0100 +++ netpbm-free-10.0/debian/rules 2012-01-12 18:13:04.000000000 +0100 @@ -9,6 +9,9 @@ DEBIAN_DIR = $(shell pwd)/debian +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk + build: build-stamp build-stamp: dh_testdir Nur in netpbm-free-10.0/debian: rules~.
diff -aur netpbm-free-10.0.orig/pbm/Makefile netpbm-free-10.0/pbm/Makefile --- netpbm-free-10.0.orig/pbm/Makefile 2004-01-05 11:39:56.000000000 +0100 +++ netpbm-free-10.0/pbm/Makefile 2012-01-12 18:39:29.000000000 +0100 @@ -20,6 +20,12 @@ pbmupc pi3topbm \ wbmptopbm xbmtopbm ybmtopbm +CFLAGS = `dpkg-buildflags --get CFLAGS` +CFLAGS += `dpkg-buildflags --get CPPFLAGS` +LDFLAGS = `dpkg-buildflags --get LDFLAGS` +export CFLAGS +export LDFLAGS + ifneq ($(LEX)x,x) PORTBINARIES += thinkjettopbm endif Nur in netpbm-free-10.0/pbm: Makefile~.