libprocps-ng: sysinfo.c: truncate the vmstat figure to 32 bits
A patch from Debian. Bug-Debian: http://bugs.debian.org/620557 Backported-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
parent
426941f8a3
commit
3cea313cf3
@ -778,6 +778,10 @@ void vminfo(void){
|
|||||||
};
|
};
|
||||||
const int vm_table_count = sizeof(vm_table)/sizeof(vm_table_struct);
|
const int vm_table_count = sizeof(vm_table)/sizeof(vm_table_struct);
|
||||||
|
|
||||||
|
#if __SIZEOF_LONG__ == 4
|
||||||
|
unsigned long long slotll;
|
||||||
|
#endif
|
||||||
|
|
||||||
vm_pgalloc = 0;
|
vm_pgalloc = 0;
|
||||||
vm_pgrefill = 0;
|
vm_pgrefill = 0;
|
||||||
vm_pgscan = 0;
|
vm_pgscan = 0;
|
||||||
@ -800,7 +804,15 @@ void vminfo(void){
|
|||||||
);
|
);
|
||||||
head = tail+1;
|
head = tail+1;
|
||||||
if(!found) goto nextline;
|
if(!found) goto nextline;
|
||||||
|
#if __SIZEOF_LONG__ == 4
|
||||||
|
// A 32 bit kernel would have already truncated the value, a 64 bit kernel
|
||||||
|
// doesn't need to. Truncate here to let 32 bit programs to continue to get
|
||||||
|
// truncated values. It's that or change the API for a larger data type.
|
||||||
|
slotll = strtoull(head,&tail,10);
|
||||||
|
*(found->slot) = (unsigned long)slotll;
|
||||||
|
#else
|
||||||
*(found->slot) = strtoul(head,&tail,10);
|
*(found->slot) = strtoul(head,&tail,10);
|
||||||
|
#endif
|
||||||
nextline:
|
nextline:
|
||||||
|
|
||||||
//if(found) fprintf(stderr,"%s=%d\n",found->name,*(found->slot));
|
//if(found) fprintf(stderr,"%s=%d\n",found->name,*(found->slot));
|
||||||
|
Loading…
Reference in New Issue
Block a user