#11698 BLOC Not Tri: Rwanda OS5: Python segfault / error 4 in libglib-2.0.so
Zarro Boogs per Child
bugtracker at laptop.org
Mon Mar 19 16:46:25 EDT 2012
#11698: Rwanda OS5: Python segfault / error 4 in libglib-2.0.so
---------------------------------------------+------------------------------
Reporter: martin.langhoff | Owner: martin.langhoff
Type: defect | Status: new
Priority: blocker | Milestone: Not Triaged
Component: manufacturing process | Version: not specified
Resolution: | Keywords:
Next_action: diagnose | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
---------------------------------------------+------------------------------
Comment(by erikos):
Sugar is not doing well in dealing with non-utf8 data. If a ssid of an AP
does not announce that correctly we fail in certain ways. For example for
a ssid like 'Gruß Möglichkeiten Quiñones' currently Sugar does display an
AP but it has no name in the Palette. If you try to connect to that AP
Sugar does silently fail because it is trying to sent this string over
D-Bus and that chokes on not being valid UTF-8 data. NM-applet is doing
guessing here for the right ssid: http://developer.gnome.org/libnm-
util/unstable/libnm-util-nm-utils.html#nm-utils-ssid-to-utf8
The error we see above is that glib.markup_escape_text core dumps with the
string '\xc3\xdc\xc2\xeb13\xb8\xf61'. when trying to display the text.
For a quick fix I think for both issues it is best to check early when the
AP is announced by NM and verify we have a ssid with utf-8 data. If not,
we don't display the AP, because if we do, we do get the non-working and
confusing behavior described above and segfault in the even worse case.
This patch does handle this and was tested against the bad AP ssid 'Gruß
Möglichkeiten Quiñones'.
{{{
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py
index 6d5bb48..9c62ea3 100644
--- a/src/jarabe/desktop/meshbox.py
+++ b/src/jarabe/desktop/meshbox.py
@@ -559,6 +559,13 @@ class MeshBox(gtk.VBox):
ap.disconnect()
return
+ try:
+ unicode(ap.name, 'utf-8')
+ except UnicodeDecodeError:
+ logging.debug('ignoring an AP essid that is not utf-8
compliant')
+ ap.disconnect()
+ return
+
if self._adhoc_manager is not None and \
network.is_sugar_adhoc_network(ap.name) and \
ap.mode == network.NM_802_11_MODE_ADHOC:
}}}
--
Ticket URL: <http://dev.laptop.org/ticket/11698#comment:3>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list