From 7e3bf70d68b7e69eaa875dae921e5c06f2c4e853bd02b7ec1b3f66743196d672 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Fri, 28 Nov 2008 11:23:11 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/valgrind?expand=0&rev=25 --- cve-2008-4865.diff | 34 +++++++++++++++-------- glibc-2.9-support.diff | 63 +++++++++++++++++++++--------------------- valgrind.changes | 5 ++++ valgrind.spec | 4 ++- 4 files changed, 63 insertions(+), 43 deletions(-) diff --git a/cve-2008-4865.diff b/cve-2008-4865.diff index 3aba4c2..da71240 100644 --- a/cve-2008-4865.diff +++ b/cve-2008-4865.diff @@ -13,7 +13,7 @@ $VALGRIND_OPTS or the --- coregrind/m_commandline.c +++ coregrind/m_commandline.c -@@ -57,21 +57,24 @@ static HChar* read_dot_valgrindrc ( HCha +@@ -57,23 +57,33 @@ static HChar* read_dot_valgrindrc ( HCha { Int n; SysRes fd; @@ -30,17 +30,29 @@ - size = VG_(fsize)(fd.res); - if (size > 0) { - f_clo = VG_(malloc)(size+1); +- vg_assert(f_clo); +- n = VG_(read)(fd.res, f_clo, size); +- if (n == -1) n = 0; +- vg_assert(n >= 0 && n <= size+1); +- f_clo[n] = '\0'; + Int res = VG_(fstat)( fd.res, &stat_buf ); + // Ignore if not owned by current user or world writeable (CVE-2008-4865) -+ if (!res && stat_buf.st_size > 0 && stat_buf.st_uid == VG_(geteuid)() -+ && (!stat_buf.st_mode & (VKI_S_IWOTH))) { -+ f_clo = VG_(malloc)(stat_buf.st_size+1); - vg_assert(f_clo); -- n = VG_(read)(fd.res, f_clo, size); -+ n = VG_(read)(fd.res, f_clo, stat_buf.st_size); - if (n == -1) n = 0; -- vg_assert(n >= 0 && n <= size+1); -+ vg_assert(n >= 0 && n <= stat_buf.st_size+1); - f_clo[n] = '\0'; ++ if (!res && stat_buf.st_uid == VG_(geteuid)() ++ && (!(stat_buf.st_mode & VKI_S_IWOTH))) { ++ if ( stat_buf.st_size > 0) { ++ f_clo = VG_(malloc)(stat_buf.st_size+1); ++ vg_assert(f_clo); ++ n = VG_(read)(fd.res, f_clo, stat_buf.st_size); ++ if (n == -1) n = 0; ++ vg_assert(n >= 0 && n <= stat_buf.st_size+1); ++ f_clo[n] = '\0'; ++ } } ++ else ++ VG_(message)(Vg_UserMsg, ++ "%s was not read as it is world writeable or not owned by the " ++ "current user", filename); ++ VG_(close)(fd.res); + } + return f_clo; diff --git a/glibc-2.9-support.diff b/glibc-2.9-support.diff index 570afb8..7648212 100644 --- a/glibc-2.9-support.diff +++ b/glibc-2.9-support.diff @@ -39,11 +39,12 @@ AC_MSG_ERROR([or AIX 5.1 or 5.2 or 5.3 libc]) ;; esac + --- glibc-2.9.supp +++ glibc-2.9.supp @@ -0,0 +1,95 @@ + -+# Errors to suppress by default with glibc 2.8.x ++# Errors to suppress by default with glibc 2.9.x + +# Format of this file is: +# { @@ -68,72 +69,72 @@ +{ + dl-hack3-cond-1 + Memcheck:Cond -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* +} +{ + dl-hack3-cond-2 + Memcheck:Cond -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/libc-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/libc-2.9*.so* +} +{ + dl-hack3-cond-3 + Memcheck:Cond -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/libc-2.8*.so* -+ obj:/lib*/libc-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/libc-2.9*.so* ++ obj:/lib*/libc-2.9*.so* +} +{ + dl-hack3-cond-4 + Memcheck:Cond -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/libdl-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/libdl-2.9*.so* +} + +{ + dl-hack4-64bit-addr-1 + Memcheck:Addr8 -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* +} +{ + dl-hack4-64bit-addr-2 + Memcheck:Addr8 -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/libc-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/libc-2.9*.so* +} +{ + dl-hack4-64bit-addr-3 + Memcheck:Addr8 -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/ld-2.8*.so* -+ obj:/lib*/libdl-2.8*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/ld-2.9*.so* ++ obj:/lib*/libdl-2.9*.so* +} + +{ + dl-hack5-32bit-addr-1 + Memcheck:Addr4 -+ obj:/lib/ld-2.8*.so -+ obj:/lib/ld-2.8*.so -+ obj:/lib/ld-2.8*.so ++ obj:/lib/ld-2.9*.so ++ obj:/lib/ld-2.9*.so ++ obj:/lib/ld-2.9*.so +} +{ + dl-hack5-32bit-addr-3 + Memcheck:Addr4 -+ obj:/lib/ld-2.8*.so -+ obj:/lib/ld-2.8*.so -+ obj:/lib/libdl-2.8*.so* ++ obj:/lib/ld-2.9*.so ++ obj:/lib/ld-2.9*.so ++ obj:/lib/libdl-2.9*.so* +} +{ + dl-hack5-32bit-addr-4 + Memcheck:Addr4 -+ obj:/lib/ld-2.8*.so -+ obj:/lib/libdl-2.8*.so* -+ obj:/lib/ld-2.8*.so ++ obj:/lib/ld-2.9*.so ++ obj:/lib/libdl-2.9*.so* ++ obj:/lib/ld-2.9*.so +} diff --git a/valgrind.changes b/valgrind.changes index 36adb43..2fa9af4 100644 --- a/valgrind.changes +++ b/valgrind.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sun Nov 23 00:45:36 CET 2008 - dmueller@suse.de + +- update suppressions + ------------------------------------------------------------------- Thu Nov 20 00:32:49 CET 2008 - dmueller@suse.de diff --git a/valgrind.spec b/valgrind.spec index 2d71fba..a77185d 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -28,7 +28,7 @@ Group: Development/Tools/Debuggers Summary: Valgrind Suite of Tools for Debugging and Profiling BuildRoot: %{_tmppath}/%{name}-%{version}-build Version: 3.3.1 -Release: 32 +Release: 33 Source0: %{name}-%{version}.tar.bz2 # svn di svn://svn.valgrind.org/valgrind/tags/VALGRIND_3_2_1 svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_2_BRANCH > 3_2_BRANCH.diff # svn di svn://svn.valgrind.org/vex/tags/VEX_3_2_1 svn://svn.valgrind.org/vex/branches/VEX_3_2_BRANCH > VEX_3_2_BRANCH.diff @@ -159,6 +159,8 @@ mv $RPM_BUILD_ROOT/usr/share/doc/valgrind $RPM_BUILD_ROOT/usr/share/doc/packages %_libdir/valgrind/*/*.a %changelog +* Sun Nov 23 2008 dmueller@suse.de +- update suppressions * Thu Nov 20 2008 dmueller@suse.de - fix .valgrindrc reading vulnerability (CVE-2008-4865, bnc#445013) - add support for glibc 2.9