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>