Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Jun 2004 13:35:43 -0700 (PDT)
From:      Willem Jan Withagen <wjw@withagen.nl>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/67546: Coredumps > 2Gb do not work (on 64bits platforms)
Message-ID:  <200406032035.i53KZhQV090871@www.freebsd.org>
Resent-Message-ID: <200406032040.i53KeMhh032745@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         67546
>Category:       kern
>Synopsis:       Coredumps > 2Gb do not work (on 64bits platforms)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 03 13:40:22 PDT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Willem Jan Withagen
>Release:        5.2.-CURRENT
>Organization:
Digiware
>Environment:
FreeBSD opteron.digiware.nl 5.2-CURRENT FreeBSD 5.2-CURRENT #12: Mon May 31 22:11:43 CEST 2004  wjw@opteron.digiware.nl:/usr/obj/home2/src/sys/OPTERON.amd64  amd64
      
>Description:
When allocating memoryblocks > 2Gb and the program crashes, then it is not able to write a coredump. This is due to faulty parameter specification since int <> long on 64bits platforms. Correct (proto)typing of the lenght corrects the problem.
>How-To-Repeat:
cd /usr/ports/devel/cocktail; make patch
cd work/cocktail-9309/reuse/m2c; make test
./rMemoryDrv
>Fix:
--- sys/kern/vfs_vnops.c.org    Mon May 31 22:42:48 2004
+++ sys/kern/vfs_vnops.c        Mon May 31 23:27:46 2004
@@ -370,7 +370,7 @@
        enum uio_rw rw;
        struct vnode *vp;
        caddr_t base;
-       int len;
+       size_t len;
        off_t offset;
        enum uio_seg segflg;
        int ioflg;
@@ -460,7 +460,7 @@
        enum uio_rw rw;
        struct vnode *vp;
        caddr_t base;
-       int len;
+       size_t len;
        off_t offset;
        enum uio_seg segflg;
        int ioflg;
--- sys/sys/vnode.h.org Mon May 31 21:57:28 2004
+++ sys/sys/vnode.h     Mon May 31 21:58:38 2004
@@ -658,11 +658,11 @@
 void   vn_pollgone(struct vnode *vp);
 int    vn_pollrecord(struct vnode *vp, struct thread *p, int events);
 int    vn_rdwr(enum uio_rw rw, struct vnode *vp, caddr_t base,
-           int len, off_t offset, enum uio_seg segflg, int ioflg,
+           u_int64_t len, off_t offset, enum uio_seg segflg, int ioflg,
            struct ucred *active_cred, struct ucred *file_cred, int *aresid,
            struct thread *td);
 int    vn_rdwr_inchunks(enum uio_rw rw, struct vnode *vp, caddr_t base,
-           int len, off_t offset, enum uio_seg segflg, int ioflg,
+           u_int64_t len, off_t offset, enum uio_seg segflg, int ioflg,
            struct ucred *active_cred, struct ucred *file_cred, int *aresid,
            struct thread *td);
 int    vn_stat(struct vnode *vp, struct stat *sb, struct ucred *active_cred,
      
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200406032035.i53KZhQV090871>