bin/129706: top(1) corrupts SIZE field when a process allocates 2048GB memory

Garrett Cooper yanefbsd at gmail.com
Tue Dec 16 23:00:05 PST 2008


The following reply was made to PR bin/129706; it has been noted by GNATS.

From: "Garrett Cooper" <yanefbsd at gmail.com>
To: "Bruce Cran" <bruce at cran.org.uk>
Cc: freebsd-gnats-submit at freebsd.org
Subject: Re: bin/129706: top(1) corrupts SIZE field when a process allocates 2048GB memory
Date: Tue, 16 Dec 2008 22:51:42 -0800

 On Tue, Dec 16, 2008 at 10:30 PM, Bruce Cran <bruce at cran.org.uk> wrote:
 >
 >>Number:         129706
 >>Category:       bin
 >>Synopsis:       top(1) corrupts SIZE field when a process allocates 2048GB memory
 >>Confidential:   no
 >>Severity:       non-critical
 >>Priority:       low
 >>Responsible:    freebsd-bugs
 >>State:          open
 >>Quarter:
 >>Keywords:
 >>Date-Required:
 >>Class:          sw-bug
 >>Submitter-Id:   current-users
 >>Arrival-Date:   Wed Dec 17 06:40:01 UTC 2008
 >>Closed-Date:
 >>Last-Modified:
 >>Originator:     Bruce Cran
 >>Release:        7.1-RC1
 >>Organization:
 >>Environment:
 > FreeBSD 7.1-RC1 amd64
 >>Description:
 > When a process allocates over 2TB, top can corrupt the SIZE field and display a series of characters instead.  It only appears to happen on TB boundaries - i.e 2048GB, 3072GB etc.  7.1-RC1 and 8-CURRENT (from 2008-12-15) both show the problem.
 >>How-To-Repeat:
 > Compile the following code and once running run top to see the process listed.
 >
 > #include <stdlib.h>
 > int main(void)
 > {
 >  char *c = malloc(2048LL*1024*1024*1024);
 >  getchar();
 >  return 0;
 > }
 
 Although I'd love to say it's top, it sounds more like a weird corner
 case dealing with overflow / underflow and vmem allocation.
 -Garrett


More information about the freebsd-bugs mailing list