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 debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to