Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Apr 2000 09:40:08 -0700
From:      Marcel Moolenaar <marcel@cup.hp.com>
To:        Matthew Dillon <dillon@apollo.backplane.com>
Cc:        freebsd-current@FreeBSD.ORG, freebsd-emulation@FreeBSD.ORG
Subject:   Re: linux emulation problems - path length restrictions in linux_rename
Message-ID:  <38F203E8.B6F49F98@cup.hp.com>
References:  <200004081855.LAA11984@apollo.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
[CC to -emulation as well]

Matthew Dillon wrote:
> 
>     I just noticed that the reserved area of the user stack that the linux
>     emulator uses to copy modified paths is only 256 bytes long.
> 
>     linux_rename() makes two calls to the path munging code, which means
>     that the two path arguments are limited in aggregate to 256 bytes,
>     which is wrong.

I've kept a PR open that addresses this indirectly. The real bug is that
there's no length checking, which means that if the combined length
exceeds 256, bad things happen.

>     I've also noted another major issue with the linux emulation, and that
>     is with shell script execution.
> 
>     If you are running a linux binary which then fork/exec's a shell script,
>     the interpreter path at the top of the shell script does not undergo
>     the path munging code, which breaks the script out of the linux emulation
>     mode (because it runs the FreeBSD /bin/sh, /bin/csh, etc instead of the
>     linux version).

This is something I have on my TODO list for a while now.

>     I have a fix for the latter problem.  It's fairly trivial.
>     Without a fix the only way one can reliably run serious linux apps
>     (like an oracle install for example) under linux emulation is to
>     chroot into /compat/linux.  I would appreciate a review:

It basicly looks all right. I haven't tried it yet and also didn't study
it closely. I was thinking along the lines of creating more of a
"context". This way we can have different behaviour depending on
"context". Context being "FreeBSD" or "Linux" or whatever. I hoped to
save the addition of "try-this-first" pointers to existing structures.
Not that it is bad in general, but I somehow always end up thinking that
there's something structurally wrong if you end up doing it like that
:-)

>     (No, this fix alone isn't enough to do an oracle install, it's just too
>     grungy a beast).

In 1999Q2 I did an install of Oracle8i, which failed due to an installer
problem, IIRC. I only modified 1 script to overcome the shell execution
problem. You are using Blackdown JDK, are you?

-- 
Marcel Moolenaar
  mail: marcel@cup.hp.com / marcel@FreeBSD.org
  tel:  (408) 447-4222


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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