[Pidgin] #15852: blist.xml becomes corrupted by chat topic

Pidgin trac at pidgin.im
Sat Jan 11 19:18:25 EST 2014

#15852: blist.xml becomes corrupted by chat topic
 Reporter:  cyisfor  |      Owner:  EionRobb
     Type:  defect   |     Status:  new
Milestone:           |  Component:  unclassified
  Version:  2.10.7   |   Keywords:
 There's a place on IRC that uses the byte 0x1D to act as an information
 separator in their topic. Go figure, Unicode point 0x1D is "Information
 Separator". This byte 0x1D is being properly escaped when the channel,
 along with the topic, is saved, as  in blist.xml. However, XML has
 an un-overridable error upon attempting to decode  not because the
 parser is incapable of decoding it, but because 0x1D is in a range of
 bytes "not allowed" to be encoded in an XML document.

 Not saying you should switch to s-expressions, JSON or BENC but, well just
 wanted to mention the elephant in the room.

 At any rate, topics with "0x1D" in them have to be scrubbed such that they
 no longer match the actual topic by eliding 0x1D and any other offending
 bytes. I don't think there's any way to save that particular formatting
 unless you want to encode the topics as base64 for blist.xml. There's no
 error when encoding, or saving the blist after having a chat topic
 containing 0x1D. But since they aren't allowed, when pidgin tries to read
 blist.xml, it errors out saying blist.xml is unreadable.

Ticket URL: <https://developer.pidgin.im/ticket/15852>
Pidgin <https://pidgin.im>

More information about the Tracker mailing list