From owner-freebsd-bugs Tue May 15 10:50:34 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 9586C37B446 for ; Tue, 15 May 2001 10:50:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f4FHo1B04216; Tue, 15 May 2001 10:50:01 -0700 (PDT) (envelope-from gnats) Received: from mail.disney.com (mail.disney.com [204.128.192.15]) by hub.freebsd.org (Postfix) with ESMTP id 205DF37B422 for ; Tue, 15 May 2001 10:45:03 -0700 (PDT) (envelope-from Jim.Pirzyk@disney.com) Received: from pain10.corp.disney.com (root@pain10.corp.disney.com [153.7.110.100]) by mail.disney.com (Switch-2.0.1/Switch-2.0.1) with SMTP id f4FHiPA08238 for ; Tue, 15 May 2001 10:44:25 -0700 (PDT) Received: from louie.fa.disney.com by pain.corp.disney.com with ESMTP for FreeBSD-gnats-submit@freebsd.org; Tue, 15 May 2001 10:45:44 -0700 Received: from plio.fan.fa.disney.com (plio.fan.fa.disney.com [153.7.118.2]) by louie.fa.disney.com (8.9.2/8.9.2) with ESMTP id KAA14081 for ; Tue, 15 May 2001 10:44:55 -0700 (PDT) (envelope-from Jim.Pirzyk@fa.disney.com) Received: from snoopy.fan.fa.disney.com (snoopy.fan.fa.disney.com [153.7.117.170]) by plio.fan.fa.disney.com (8.9.2/8.9.2) with ESMTP id KAA13424 for ; Tue, 15 May 2001 10:44:55 -0700 (PDT) (envelope-from Jim.Pirzyk@fa.disney.com) Received: (from Jim.Pirzyk@localhost) by snoopy.fan.fa.disney.com (8.11.3/8.9.3) id f4FHis214465; Tue, 15 May 2001 10:44:54 -0700 (PDT) (envelope-from Jim.Pirzyk@fa.disney.com) Message-Id: <200105151744.f4FHis214465@snoopy.fan.fa.disney.com> Date: Tue, 15 May 2001 10:44:54 -0700 (PDT) From: Jim.Pirzyk@disney.com Reply-To: Jim.Pirzyk@disney.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.113 Subject: kern/27350: /compat/linux/proc/meminfo has size overflows. Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 27350 >Category: kern >Synopsis: /compat/linux/proc/meminfo has size overflow >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue May 15 10:50:01 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Jim Pirzyk >Release: FreeBSD 4.3-RELEASE i386 >Organization: >Environment: System: FreeBSD snoopy.fan.fa.disney.com 4.3-RELEASE FreeBSD 4.3-RELEASE #4: Fri Apr 27 01:14:59 PDT 2001 root@snoopy.fan.fa.disney.com:/auto/roy/dist/pub/FreeBSD/4.3-RELEASE/sys/compile/UP_WORKSTATION i386 >Description: A FreeBSD system with 5GB of swap space Jim.Pirzyk@render001:/usr/local/lsf/etc 48>pstat -sk Device 1K-blocks Used Avail Capacity Type /dev/da0s1b 5242752 0 5242752 0% Interleaved But /compat/linux/proc/meminfo only shows us 1GB: Jim.Pirzyk@render001:/sys/modules/linprocfs 17>cat /compat/linux/proc/meminfo Mem: 2413268992 40722432 2372546560 2891776 0 32768 Swap: 1073741824 131072 1073610752 MemTotal: 2356708 kB MemFree: 2316940 kB MemShared: 2824 kB Buffers: 0 kB Cached: 32 kB SwapTotal: 1048576 kB SwapFree: 1048448 kB >How-To-Repeat: >Fix: *** ./sys/i386/linux/linprocfs/linprocfs_misc.c.orig Thu Dec 7 05:17:55 2000 --- ./sys/i386/linux/linprocfs/linprocfs_misc.c Tue May 15 10:35:34 2001 *************** *** 92,100 **** unsigned long memfree; /* free memory in bytes */ unsigned long memshared; /* shared memory ??? */ unsigned long buffers, cached; /* buffer / cache memory ??? */ ! unsigned long swaptotal; /* total swap space in bytes */ ! unsigned long swapused; /* used swap space in bytes */ ! unsigned long swapfree; /* free swap space in bytes */ vm_object_t object; if (uio->uio_rw != UIO_READ) --- 92,100 ---- unsigned long memfree; /* free memory in bytes */ unsigned long memshared; /* shared memory ??? */ unsigned long buffers, cached; /* buffer / cache memory ??? */ ! unsigned long long swaptotal; /* total swap space in bytes */ ! unsigned long long swapused; /* used swap space in bytes */ ! unsigned long long swapfree; /* free swap space in bytes */ vm_object_t object; if (uio->uio_rw != UIO_READ) *************** *** 117,124 **** swaptotal = 0; swapfree = 0; } else { ! swaptotal = swapblist->bl_blocks * 1024; /* XXX why 1024? */ ! swapfree = swapblist->bl_root->u.bmu_avail * PAGE_SIZE; } swapused = swaptotal - swapfree; memshared = 0; --- 117,124 ---- swaptotal = 0; swapfree = 0; } else { ! swaptotal = (unsigned long long) swapblist->bl_blocks * 1024ULL; /* XXX why 1024? */ ! swapfree = (unsigned long long) swapblist->bl_root->u.bmu_avail * PAGE_SIZE; } swapused = swaptotal - swapfree; memshared = 0; *************** *** 142,155 **** ps += sprintf(ps, " total: used: free: shared: buffers: cached:\n" "Mem: %lu %lu %lu %lu %lu %lu\n" ! "Swap: %lu %lu %lu\n" "MemTotal: %9lu kB\n" "MemFree: %9lu kB\n" "MemShared:%9lu kB\n" "Buffers: %9lu kB\n" "Cached: %9lu kB\n" ! "SwapTotal:%9lu kB\n" ! "SwapFree: %9lu kB\n", memtotal, memused, memfree, memshared, buffers, cached, swaptotal, swapused, swapfree, B2K(memtotal), B2K(memfree), --- 142,155 ---- ps += sprintf(ps, " total: used: free: shared: buffers: cached:\n" "Mem: %lu %lu %lu %lu %lu %lu\n" ! "Swap: %llu %llu %llu\n" "MemTotal: %9lu kB\n" "MemFree: %9lu kB\n" "MemShared:%9lu kB\n" "Buffers: %9lu kB\n" "Cached: %9lu kB\n" ! "SwapTotal:%9llu kB\n" ! "SwapFree: %9llu kB\n", memtotal, memused, memfree, memshared, buffers, cached, swaptotal, swapused, swapfree, B2K(memtotal), B2K(memfree), >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message