[hardy] no longer possible to use 'openoffice my-document.odp' in a terminal
Bug #179977 reported by
Brian Murray
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openoffice.org (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
Binary package hint: openoffice.org
In Gutsy I used to be able to open openoffice documents via 'openoffice my-doc.odt' in a gnome-terminal session. However, when I try to do that now in Hardy I receive the following:
bdmurray@
Error forking '/usr/lib/
This happens regardless of the file type I am opening. I have openoffice.org version 1:2.3.0-1ubuntu5.3 installed.
Changed in openoffice.org: | |
importance: | Undecided → High |
status: | New → Confirmed |
To post a comment you must log in.
Reproducible here on amd64. Can be reproduced just by running "oowriter", or to bypass the wrapper script, "OOO_EXTRA_ ARG=-writer /usr/lib/ openoffice/ program/ ooqstart" .
Here's a snippet from strace:
[pid 12231] execve( "/usr/lib/ openoffice/ program/ soffice" , ["/usr/ lib/openoffice/ program/ soffice" , "-writer", "-splash-pipe=5", umovestr: Input/output error
0x71, "\360!a", "\360!a", umovestr: Input/output error
0x6f632f6465746567, umovestr: Input/output error
0x732f73747865746e, umovestr: Input/output error
0x7974746572756365, umovestr: Input/output error
0x73657079745f], [/* 39 vars */]) = -1 EFAULT (Bad address)
The use of clone() by ooqstart seems odd to me; I don't understand why it would clone twice using the same address for child_tidptr both times, perhaps that could account for the problem?
Oh, and oowriter starts successfully under valgrind, with the following indicative warning:
==13824== Syscall param execve(argv) points to uninitialised byte(s) libglib- 2.0.so. 0.1500. 0) libglib- 2.0.so. 0.1500. 0) async_with_ pipes (in /usr/lib/ libglib- 2.0.so. 0.1500. 0) libglib- 2.0.so. 0.1500. 0) openoffice/ program/ ooqstart)
==13824== at 0x548DF27: execve (in /lib/libc-2.7.so)
==13824== by 0x4E91374: (within /usr/lib/
==13824== by 0x4E91977: (within /usr/lib/
==13824== by 0x4E91FB8: g_spawn_
==13824== by 0x4E9209C: g_spawn_async (in /usr/lib/
==13824== by 0x405A7C: main (in /usr/lib/
All this seems to add up to ooqstart failing to null-terminate the argv[] array that it's passing when calling execve().