Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Jun 2006 11:11:13 +0200
From:      Divacky Roman <xdivac02@stud.fit.vutbr.cz>
To:        Dmitry Ganenko <dima@apk-inform.com>
Cc:        freebsd-emulation@freebsd.org
Subject:   Re: Installation of Oracle10g Express Edition on FreeBSD 5.4-RELEASE
Message-ID:  <20060627091113.GA23700@stud.fit.vutbr.cz>
In-Reply-To: <1269796593.20060626133451@apk-inform.com>
References:  <885310187.20060623143520@apk-inform.com> <20060624110951.GA21539@stud.fit.vutbr.cz> <1269796593.20060626133451@apk-inform.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jun 26, 2006 at 01:34:51PM +0300, Dmitry Ganenko wrote:
> Saturday, June 24, 2006, 2:09:51 PM, you wrote:
> 
> DR> pls, can you explain how this manifest in the oracle? I agree that this is a
> DR> bug but I am not sure why noone noticed this. the fact is that most people use
> DR> "cat /proc/x/y" and cat reads 1024 bytes in this case so this doesnt manifest
> 
> Oracle XE does not start without this patch. I see in trace file that oracle
> process enumerates all running processes (/compat/linux/proc/<pid>/cmdline)
> with call of read(fd, buf, 8) and read() returns it 7 bytes, and
> oracle do it while file descriptors available. After reaching maxfilesperproc,
> oracle exit with "single instance violation error".
 
ok, fair enough

> DR> Index: pseudofs_vnops.c
> DR> ===================================================================
> DR> RCS file: /home/ncvs/src/sys/fs/pseudofs/pseudofs_vnops.c,v
> DR> retrieving revision 1.59
> DR> diff -u -r1.59 pseudofs_vnops.c
> DR> --- pseudofs_vnops.c    22 Feb 2006 18:57:49 -0000      1.59
> DR> +++ pseudofs_vnops.c    24 Jun 2006 11:08:59 -0000
> DR> @@ -515,7 +515,7 @@
> DR>         if (uio->uio_offset < 0 || uio->uio_resid < 0 ||
> DR>             (offset = uio->uio_offset) != uio->uio_offset ||
> DR>             (resid = uio->uio_resid) != uio->uio_resid ||
> DR> -           (buflen = offset + resid) < offset || buflen > INT_MAX) {
> DR> +           (buflen = offset + resid + 1) < offset || buflen > INT_MAX) {
> DR>                 if (proc != NULL)
> DR>                         PRELE(proc);
> DR>                 PFS_RETURN (EINVAL);
> 
> Thanks for correction. I'm from beginning said that may be I'm not
> right. :)

pls, can you test this one?



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