Package: procps
Version: 1:3.3.3-3
Severity: important
Tags: upstream
Hi,
Trying to investigate the FTBFS at [1], I'm finding another bug first
:-(. The vmstat test suite tries to run "vmstat -p /dev/sda1", and
vmstat crashes:
Program received signal SIGSEGV, Segmentation fault.
getdiskstat (disks=disks@entry=0x7ffffff500,
partitions=partitions@entry=0x7ffffff508) at sysinfo.c:942
942 (*disks)[cDisk-1].partitions++;
(gdb) bt
#0 getdiskstat (disks=disks@entry=0x7ffffff500,
partitions=partitions@entry=0x7ffffff508)
at sysinfo.c:942
#1 0x000000000040240c in diskpartition_format (partition_name=0x7ffffff908
"sda1") at vmstat.c:405
#2 main (argc=3, argv=<optimized out>) at vmstat.c:860
(gdb) p *disks
$5 = (struct disk_stat *) 0x0
I've stepped through this in gdb and the code is buggy. AFAICS it's
expecting different input from /proc/diskstats and is crashing with
unexpected ordering there. On the build system, /proc/diskstats looks
like:
# cat /proc/diskstats
9 0 md0 0 0 0 0 0 0 0 0 0 0 0
8 0 sda 18297056 78938093 840697762 74514270 127752173 655690401
6479643026 2740776074 0 312739270 2816334634
8 1 sda1 1646598 209181 56626222 10343690 10299020 6458686 188052464
119665440 0 24274120 130083010
8 2 sda2 32994 200 53309 47550 0 0 0 0 0 47430 47480
8 3 sda3 6977899 37424337 355218328 17871070 2063040 55004745
458138000 2154955860 0 24541560 2173719580
8 4 sda4 9632954 41304340 428746735 46168210 115390113 594226970
5833452562 466154774 0 273914290 512422344
252 0 dm-0 315576 0 11411426 2406000 2704982 0 55857728 101308060 0
4488840 103714130
252 1 dm-1 233369 0 10877178 1700330 40757559 0 434129480 1221706298 0
8882130 1223411078
252 3 dm-3 23803 0 190424 64480 2 0 16 0 0 63860 64480
252 7 dm-7 10454 0 585488 44320 120350 0 2803000 18570130 0 117980
18614460
252 8 dm-8 11308 0 508480 43240 113046 0 2388264 19015070 0 106060
19058320
252 2 dm-2 27264 0 218106 187230 247568 0 1980544 38397790 0 110300
38585030
252 4 dm-4 21353 0 170818 137700 0 0 0 0 0 10700 137700
252 5 dm-5 5911 0 47288 49500 264769 0 2118152 29740840 0 97440 29790370
In the loop in getdiskstat(), I'm seeing that *disks is being
dereferenced in the partition-handling code before it has been
xrealloc'ed in the disk-handling code. As to *why* this code is being
triggered this way, I don't know, but it's clearly buggy behaviour to
crash here!
[1]
https://buildd.debian.org/status/fetch.php?pkg=procps&arch=arm64&ver=2%3A3.3.9-8&stamp=1412180141
-- System Information:
Debian Release: 7.6
APT prefers stable
APT policy: (500, 'stable'), (500, 'oldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages procps depends on:
ii initscripts 2.88dsf-41+deb7u1
ii libc6 2.13-38+deb7u4
ii libncurses5 5.9-10
ii libncursesw5 5.9-10
ii libprocps0 1:3.3.3-3
ii libtinfo5 5.9-10
ii lsb-base 4.1+Debian8+deb7u1
Versions of packages procps recommends:
ii psmisc 22.19-1+deb7u1
procps suggests no packages.
-- Configuration Files:
/etc/sysctl.conf changed [not included]
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]