Crashes when non-latin1 Unicode character arrives
Bug description
When non-latin1 Unicode characters arrive in a stanza, gajim crashes.
Steps to reproduce
-
When a "…" arrives in a status stanza, gajim crashes with this message:
Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/nbxmpp/dispatcher_nb.py", line 497, in dispatch handler['func'](session, stanza) File "/usr/share/gajim/src/common/connection_handlers.py", line 1876, in _presenceCB conn=self, stanza=prs)) File "/usr/share/gajim/src/common/nec.py", line 76, in push_incoming_event self._generate_events_based_on_incoming_event(event_object) File "/usr/share/gajim/src/common/nec.py", line 98, in _generate_events_based_on_incoming_event if new_event_object.generate(): File "/usr/share/gajim/src/common/connection_handlers_events.py", line 819, in generate self._generate_keyID(sig_tag) File "/usr/share/gajim/src/common/connection_handlers_events.py", line 745, in _generate_keyID self.keyID = self.conn.gpg.verify(self.status, sig_msg) File "/usr/share/gajim/src/common/gpg.py", line 100, in verify result = super(GnuPG, self).verify(data) File "/usr/share/gajim/src/common/gnupg.py", line 899, in verify f = _make_binary_stream(data, self.encoding) File "/usr/share/gajim/src/common/gnupg.py", line 184, in _make_binary_stream s = s.encode(encoding) UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2026' in position 49: ordinal not in range(256)
-
When a text message with "吐" arrives, gajim crashes with this message:
Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/nbxmpp/dispatcher_nb.py", line 497, in dispatch handler['func'](session, stanza) File "/usr/share/gajim/src/common/connection_handlers.py", line 1876, in _presenceCB conn=self, stanza=prs)) File "/usr/share/gajim/src/common/nec.py", line 76, in push_incoming_event self._generate_events_based_on_incoming_event(event_object) File "/usr/share/gajim/src/common/nec.py", line 98, in _generate_events_based_on_incoming_event if new_event_object.generate(): File "/usr/share/gajim/src/common/connection_handlers_events.py", line 819, in generate self._generate_keyID(sig_tag) File "/usr/share/gajim/src/common/connection_handlers_events.py", line 745, in _generate_keyID self.keyID = self.conn.gpg.verify(self.status, sig_msg) File "/usr/share/gajim/src/common/gpg.py", line 100, in verify result = super(GnuPG, self).verify(data) File "/usr/share/gajim/src/common/gnupg.py", line 899, in verify f = _make_binary_stream(data, self.encoding) File "/usr/share/gajim/src/common/gnupg.py", line 184, in _make_binary_stream s = s.encode(encoding) UnicodeEncodeError: 'latin-1' codec can't encode character u'\u5410' in position 49: ordinal not in range(256)
Software versions
OS version: Fedora 22
GTK version: gtk2-2.24.28-1.fc22.x86_64 / gtk3-3.16.3-1.fc22.x86_64
PyGTK version: pygtk2-2.24.0-11.fc22.x86_64