Okay, I think I found the problem.
I think this is a bug in the "is_env()" function in glib2.0 file
gdesktopappinfo.c.
I will be providing a patch shortly once I have tested it locally.
Basically what's happening is the environment passed to the spawned
process has 2 "DISPLAY=" lines, one with "DISPLAY=:0.0" and another with
"DISPLAY=:0.1".
The is_env() function as written is CLEARLY wrong.
Untested version of the new fix:
/* '=' is the new '\0'.
* DO NOT CALL unless at least one string ends with '='
*/
static gboolean
is_env (const char *a,
const char *b)
{
while (*a == *b)
{
if (*a == '=' && *b == 0) /* return true if at end of b and a is on =. */
return TRUE;
if (*a == '=' || *a == 0 || *b == 0) /* otherwise return if at the end of
either string. */
return FALSE;
a++;
b++;
}
return FALSE;
}
The old version would bomb out with FALSE if *a==0 || *b==0, but the
actual correct TRUE case (shown above) is (*a == '=' and *b == 0).
--
menu items selected from screen 1 open on screen 0
https://bugs.launchpad.net/bugs/346964
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs