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)
==13824==    at 0x548DF27: execve (in /lib/libc-2.7.so)
==13824==    by 0x4E91374: (within /usr/lib/libglib-2.0.so.0.1500.0)
==13824==    by 0x4E91977: (within /usr/lib/libglib-2.0.so.0.1500.0)
==13824==    by 0x4E91FB8: g_spawn_async_with_pipes (in 
/usr/lib/libglib-2.0.so.0.1500.0)
==13824==    by 0x4E9209C: g_spawn_async (in /usr/lib/libglib-2.0.so.0.1500.0)
==13824==    by 0x405A7C: main (in /usr/lib/openoffice/program/ooqstart)

All this seems to add up to ooqstart failing to null-terminate the
argv[] array that it's passing when calling execve().

-- 
[hardy] no longer possible to use 'openoffice my-document.odp' in a terminal
https://bugs.launchpad.net/bugs/179977
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to