This is not a bug in glib. UploadBlacklist() loops through a list of
strings with

  for (auto item : blacklist_)
    // do something with item.c_str()

which makes a copy of each string in every iteration. This means that
item.c_str() is not valid anymore after the loop finishes.
g_settings_set_strv() then rightly complains about invalid utf8  from
whatever is lying around at those memory addresses then.

The attached branch fixes this by using a const reference in the loop.

** Changed in: unity (Ubuntu)
       Status: Invalid => In Progress

** Changed in: glib2.0 (Ubuntu)
       Status: Confirmed => Invalid

** Changed in: unity (Ubuntu)
   Importance: Medium => High

** Branch linked: lp:~larsu/unity/lp1495173

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to glib2.0 in Ubuntu.
https://bugs.launchpad.net/bugs/1495173

Title:
  compiz crashed with SIGSEGV in g_bit_lock()

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/glib2.0/+bug/1495173/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to