Package: icu
Version: 4.8.1.1-4
Severity: important
Tags: patch

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Dear Maintainer,

Please consider enabling hardening flags which are a release goal
for wheezy. For more information please have a look at [1], [2]
and [3].

The attached patch enables hardening flags. Including
buildflags.mk is necessary because no CDBS class is used.

To check if all flags were correctly enabled you can use
`hardening-check` from the hardening-includes package and check
the build log (hardening-check doesn't catch everything):

    $ hardening-check /usr/lib/libicutu.so.48.1.1 /usr/lib/libicutest.so.48.1.1 
/usr/lib/libiculx.so.48.1.1 ...
    /usr/lib/libicutu.so.48.1.1:
     Position Independent Executable: no, regular shared library (ignored)
     Stack protected: yes
     Fortify Source functions: yes (some protected functions found)
     Read-only relocations: yes
     Immediate binding: no not found!
    /usr/lib/libicutest.so.48.1.1:
     Position Independent Executable: no, regular shared library (ignored)
     Stack protected: yes
     Fortify Source functions: yes (some protected functions found)
     Read-only relocations: yes
     Immediate binding: no not found!
    /usr/lib/libiculx.so.48.1.1:
     Position Independent Executable: no, regular shared library (ignored)
     Stack protected: yes
     Fortify Source functions: yes (some protected functions found)
     Read-only relocations: yes
     Immediate binding: no not found!
    ...

(Position Independent Executable and Immediate binding is not
enabled by default.)

Use find -type f \( -executable -o -name \*.so\* \) -exec
hardening-check {} + on the build result to check all files.

Regards,
Simon

[1]: https://wiki.debian.org/ReleaseGoals/SecurityHardeningBuildFlags
[2]: https://wiki.debian.org/HardeningWalkthrough
[3]: https://wiki.debian.org/Hardening

- -- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBCAAGBQJPXh5VAAoJEJL+/bfkTDL5hkgQAK5Vz8hp4wPhYK2js7OnUYHK
ubpMHhpSqlyuxTYNuyEWOUDQZQAX/Q9hyQWszaUsAOyUwu60tMqeSnfDLlQRZe4R
4PENz79H1xLgGStypkD5Xx1VoLTdAuvZbmLhgEQCLhH5WWJ1au0nvRLe+Jb3rCyD
g0kP20xa+n8wt7v2+9ifvgGsQwprwWBa9ELgXaYWI5g0SBoTuUc4A5Tmk7XQCl0O
o740KqDt2Oxj6sr0yE9OwJ0PSjnUQ36c16v32kXaVSdzcCUblPqCwucxBtmwZfIk
cib/3V6XN5mT5R6GOKJJxdHGqV3xUUdowIbyxze9HnZJaT22ja5+Zd8BTO+2Grab
aj0u2ZzqPMKM2jMAGIPqVQNFBSMUSyc+lOVfeHhBgQN7aiKY8GroE2I6sdlFENc8
+xhoYhRXI0GRmQbK6hwEdL1vgKcWRhbZjZA+ZqT+TWxq49PdEcoKgQ4FNs+yGEHN
cr9tRxSZc3VR1dOaTJL/3sIrOpIoRXGKCUvpAmCca5qD6OdkgR2+YkoqvXCoW9Kt
yavhP4IoMP8bSfwP4Mqk4WLDZwZ4yMj41SwOSnhGb30E6AXQLlP8j5YOSjSLLog1
DSIFZNfMK9C7HsILlgMoxqwpFo31slYdQmIASI7+luGtUjG/gAHJU/VR7z2qi6Qk
bul57If7iNgTDssO5J8w
=03ug
-----END PGP SIGNATURE-----
diff -Nru icu-4.8.1.1/debian/rules icu-4.8.1.1/debian/rules
--- icu-4.8.1.1/debian/rules	2012-03-11 23:50:05.000000000 +0100
+++ icu-4.8.1.1/debian/rules	2012-03-12 16:41:49.000000000 +0100
@@ -1,5 +1,10 @@
 #!/usr/bin/make -f
 
+# Get (hardening) build flags, CDBS doesn't handle this automatically because
+# no class is used.
+DPKG_EXPORT_BUILDFLAGS = 1
+include /usr/share/dpkg/buildflags.mk
+
 DEB_HOST_ARCH_CPU	?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
 
 # To distinguish variables that are truly local to this file (rather
@@ -7,21 +12,24 @@
 # variables' names with l_.
 
 l_SONAME := 48
-l_CFLAGS := -g -Wall
+CFLAGS += -g -Wall
 ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-	l_CFLAGS += -O0
+	CFLAGS += -O0
 else
-	l_CFLAGS += -O2
+	CFLAGS += -O2
 endif
 
 # Turn off optimization on armel to avoid some internal compiler
 # errors.  This can be removed once bug 484053 is resolved.
 ifeq ($(shell dpkg --print-architecture),armel)
-l_CFLAGS := $(filter-out -O%,$(l_CFLAGS)) -O0
+CFLAGS := $(filter-out -O%,$(CFLAGS)) -O0
 endif
 
+# Use local settings for CXXFLAGS as well.
+CXXFLAGS = $(CFLAGS)
+
 # common configure cruft
-l_CONFIGURE = CC="gcc" CXX="g++" CPPFLAGS="" LDFLAGS="" \
+l_CONFIGURE = CC="gcc" CXX="g++" \
 	./configure \
 	--build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \
 	--includedir="\$${prefix}/include" \
@@ -70,14 +78,13 @@
 configure/libicu$(l_SONAME) configure/libicu-dev:: debian/stamp-configure
 debian/stamp-configure:
 	cd $(DEB_SRCDIR) && \
-		CFLAGS="$(l_CFLAGS)" CXXFLAGS="$(l_CFLAGS)" \
 		$(l_CONFIGURE)
 	touch debian/stamp-configure
 
 configure/lib32icu$(l_SONAME) configure/lib32icu-dev:: debian/stamp-configure32
 debian/stamp-configure32:
 	cd $(DEB_SRCDIR)-build32 && \
-		CFLAGS="$(l_CFLAGS) -m32" CXXFLAGS="$(l_CFLAGS) -m32" \
+		CFLAGS="$(CFLAGS) -m32" CXXFLAGS="$(CXXFLAGS) -m32" \
 		$(l_CONFIGURE) --libdir=/usr/lib32
 	touch debian/stamp-configure32
 

Reply via email to