Comment 8 for bug 1254996

Revision history for this message
Martin Pitt (pitti) wrote :

For the record, I cannot reproduce this with today's (20131126) trusty image, but I do get it with 20131125. The stack trace unfortunately does not show the actual property name and value, but the interesting bit is that it happens at the closing } of GtkNode::MatchStringProperty(). That means it crashes when destructing an object, and this function only has one C++ object: the std::string dest_value (everything else is C).

I can't say I understand the reason. string's = assignment does copy the C string, so unreffing the variant after it is valid. The string should then get auto-freed at the end of the function.

When I replace the temporary std:string with a simple g_strcmp0(), the crash seems to go away. Jean-Baptiste, Dan Chapman, and I ran the ubiquity tests several times in exactly the same environment but with this libautopilot-gtk patch, and they all succeeded.

It's nagging me that I don't understand the real cause, but this is both a simplification and also avoids unnecessarily copying the string, so let's get this in.