crash regression causing invalid dbus interface name
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Terminator |
New
|
Undecided
|
Unassigned |
Bug Description
Bug 1267195 was fixed with revision 1734 in the GTK3 branch. This caused a regression when the .replace('-','_') method call was removed.
In terminatorlib/
DISPLAY = hex(hash(
to:
DISPLAY = hex(hash(
Python's built-in hash function returns a signed integer. The built-in hex function returns a signed hex value, not a hex representation of the unsigned value. D-Bus does not allow the '-' character in bus names. This means that half of the possible hash values for the display name will now cause terminator to crash on startup with a D-Bus error.
When ipc.py line 26 is changed to:
DISPLAY = hex(hash(
it appears to fix the original bug without causing the regression.
Related branches
summary: |
- regression causing invalid dbus interface name + crash regression causing invalid dbus interface name |
description: | updated |
tags: | added: crash |
tags: | added: regression |
There are multiple duplicates and various suggested patches both on here and other forums but I can't see that any have been accepted. There are large ranges of values which can be returned by `Gdk.get_ display( ).partition( '.')[0] ` which results in negative hash values, the most common probably being all display values between `:1000` and `:9999`, particularly on systems which might be configured to start display numbers at 1000 or 1001.
I can't see that the proposed patch would cause any problems and corrects a regression so what's required to get Andrew's patch accepted and released?