Hallo Detlef,

On Fri, May 06, 2005 at 01:12:30PM +0200, Detlef Witt-Schleuer wrote:
> Am Freitag, 6. Mai 2005 09:38 schrieb Ingo Göppert:
> > Zitat aus einer Mail von Michael am 7.2.2005:
> [SuSE und speichern auf FAT] 
> Ja, es gab dazu noch eine Vielzahl anderer Anmerkungen seiner Zeit, aber das 
> Problem wurde grundsätzlich nicht gelöst. Auch nicht mit der vermeintlichen 
> Lösung, die Du zitierst. Ich lebe mit diesem ungelösten Problem / Bug? nun 
> auch schon seit Monaten ....

Darf man fragen warum Du Dich damals nicht wieder gemeldet hast?
Und darf man fragen wie es dann zu Deinem Posting vom 7. Februar kam?

,----[ Detlef Witt-Schleuer - Mon, 07 Feb 2005 ]
| Am Montag, 7. Februar 2005 10:14 schrieb Michael Hoehne:
| > Am Montag, 7. Februar 2005 02:14 schrieb Michael Hoehne:
| > Sagen wir das also so: Wer "users" braucht (so wie ich, da diese
| > Platte
| > nicht beim Systemstart gemountet wird/wurde), der muß das "exec"
| > _dahinter_ setzen.
|
| Super! Danke! Funktioniert bei mir jetzt auch einwandfrei.
|
| Gruß
| Detlef
`----

Die detaillierte Ursache hat Stephan Bergmann gepostet.
Das Problem wurde also durchaus grundsätzlich gelöst

,----[ Stephan Bergmann - Wed, 09 Feb 2005 ]
| Des Rätsels Lösung ist wie folgt:
|
| - OOo benutzt beim Speichern der geänderten Datei mmap(2) mit PROT_READ
| um die alte Version der Datei auszulesen.
|
| - Das von Sun gebaute OOo 1.1.x ist mit einem relativ alten GCC 3.2.2
| compiliert worden, der noch keinen PT_GNU_STACK-Eintrag in das
| ausführbare soffice.bin schreibt. (Das von Sun gebaute OOo 2.0 wird mit
| einem neueren GCC 3.4.1 gebaut, der den PT_GNU_STACK-Eintrag schreibt.)
|
| - Bei einem hinreichend neuen Linux-Kernel (wie z. B. dem bei SuSE 9.2
| benutzten) schlägt mmap(2) mit PROT_READ dann fehl, wenn die entspr.
| Datei auf einem "mount noexec"-Dateisystem liegt, und das ausgeführte
| Programm keinen PT_GNU_STACK-Eintrag enthält, siehe
| <http://www.ussg.iu.edu/hypermail/linux/kernel/0410.0/0478.html>. Dies
| ist ein Fehler im Linux-Kernel.
|
| Aus Sicht von OOo besteht die Lösung des Problems also darin, einen
| hinreichend aktuellen GCC zu benutzen. Für das von Sun gebaute OOo 2.0
| wird dies getan, so dass das Problem dort nicht mehr auftreten sollte.
| (Wie das bei einem eventuellen OOo 1.1.5 aussieht kann ich momentan
| nicht sagen.)
`----

Der Fehler ist also grunsätzlich ein Bug im Kernel der nur dann in
Erscheinung tritt wenn das Programm mit einem älteren Compiler übersetzt
wird und wenn das Programm eine bestimmten Weg zum Speichern nutzt.

Diesen Bug kann man umgehen indem man die Partition mit der Option
"exec" mounted.

Aus dem Kommentar wird auch ersichtlich warum OOo 2.0 nicht betroffen
ist (da wird ein anderer Compiler benutzt).

OOo 1.1.5 wird eine anderen Weg zum Speichern verwenden, so daß der
Fehler im Bug keine Rolle mehr spielt.

ciao
Christian
-- 
NP: 4Lyn - One 2 Three

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an