commit procps for openSUSE:Factory
Hello community, here is the log from the commit of package procps for openSUSE:Factory checked in at Mon Jun 28 10:35:59 CEST 2010. -------- --- procps/procps.changes 2010-03-05 02:04:59.000000000 +0100 +++ /mounts/work_src_done/STABLE/procps/procps.changes 2010-06-23 10:16:01.000000000 +0200 @@ -1,0 +2,5 @@ +Wed Jun 23 10:11:18 CEST 2010 - mszeredi@suse.cz + +- Avoid integer overflows in free(1) [bnc#411002] + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- procps-3.2.8-integer-overflow.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ procps.spec ++++++ --- /var/tmp/diff_new_pack.09IMiM/_old 2010-06-28 10:12:37.000000000 +0200 +++ /var/tmp/diff_new_pack.09IMiM/_new 2010-06-28 10:12:37.000000000 +0200 @@ -27,7 +27,7 @@ PreReq: %fillup_prereq %insserv_prereq AutoReqProv: on Version: 3.2.8 -Release: 11 +Release: 12 Summary: ps utilities for /proc Provides: ps Obsoletes: ps @@ -67,6 +67,7 @@ Patch30: procps-3.2.8-sysctlerr.dif Patch31: procps-3.2.8-columns.dif Patch32: procps-3.2.7-oom.diff +Patch33: procps-3.2.8-integer-overflow.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -127,6 +128,7 @@ %patch30 %patch31 %patch32 -p1 +%patch33 -p1 %build make %{?jobs:-j%jobs} CFLAGS="-Wall -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 $RPM_OPT_FLAGS -pipe" \ ++++++ procps-3.2.8-integer-overflow.patch ++++++ --- free.c | 26 +++++++++++++++++++++++--- proc/sysinfo.c | 12 ++++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) Index: procps-3.2.8/proc/sysinfo.c =================================================================== --- procps-3.2.8.orig/proc/sysinfo.c 2008-03-24 05:33:43.000000000 +0100 +++ procps-3.2.8/proc/sysinfo.c 2009-08-17 17:57:29.000000000 +0200 @@ -617,9 +617,17 @@ nextline: if(kb_inactive==~0UL){ kb_inactive = kb_inact_dirty + kb_inact_clean + kb_inact_laundry; } - kb_swap_used = kb_swap_total - kb_swap_free; - kb_main_used = kb_main_total - kb_main_free; + if (kb_swap_total > kb_swap_free) { + kb_swap_used = kb_swap_total - kb_swap_free; + } else { + kb_swap_used = 0; + } + if (kb_main_total > kb_main_free) { + kb_main_used = kb_main_total - kb_main_free; + } else { + kb_main_used = 0; + } kb_main_cached += kb_swap_reclaimable + kb_swap_cached + kb_nfs_unstable; } /*****************************************************************/ Index: procps-3.2.8/free.c =================================================================== --- procps-3.2.8.orig/free.c 2004-01-30 03:30:29.000000000 +0100 +++ procps-3.2.8/free.c 2009-08-17 18:04:23.000000000 +0200 @@ -76,24 +76,44 @@ int main(int argc, char *argv[]){ // not export the low and high stats. Note we still want to // print the high info, even if it is zero. if (show_high) { + unsigned long kb_low_used; + unsigned long kb_high_used; + + if (kb_low_total > kb_low_free) + kb_low_used = kb_low_total - kb_low_free; + else + kb_low_used = 0; + + if (kb_high_total > kb_high_free) + kb_high_used = kb_high_total - kb_high_free; + else + kb_high_used = 0; + printf( "%-7s %10Lu %10Lu %10Lu\n", "Low:", S(kb_low_total), - S(kb_low_total - kb_low_free), + S(kb_low_used), S(kb_low_free) ); printf( "%-7s %10Lu %10Lu %10Lu\n", "High:", S(kb_high_total), - S(kb_high_total - kb_high_free), + S(kb_high_used), S(kb_high_free) ); } if(!old_fmt){ unsigned KLONG buffers_plus_cached = kb_main_buffers + kb_main_cached; + unsigned long kb_used_minus_bufcache; + + if (kb_main_used > buffers_plus_cached) + kb_used_minus_bufcache = kb_main_used - buffers_plus_cached; + else + kb_used_minus_bufcache = 0; + printf( "-/+ buffers/cache: %10Lu %10Lu\n", - S(kb_main_used - buffers_plus_cached), + S(kb_used_minus_bufcache), S(kb_main_free + buffers_plus_cached) ); } ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de