Responding to Martin Nilsson's post on LysKOM (if I respond directly there, I'll have no record at my end):
From a very quick look: _decode_targets in gtkwidget.pre doesn't check that the sub-array size is 3 before indexing it. And checking that ITEM(cur)[0].u.string->size_shift is 0 is easy to add. Are there any other restrictions on the string (e.g. is \0 allowed)? The new string range functions are handy for that.
Oops, good catch on the sub-array size check. And yeah, added the assertion that size_shift be zero; although I'm not sure whether I should be UTF-8 encoding (which may apply even if size_shift is nonzero) or handling non-ASCII strings in some other way.
My guess is that \0 is *not* allowed, but honestly, I don't know. For the moment, I'm punting on that - most likely, the string will silently truncate at the \0.
Have also pushed some docs improvements, which were sorely needed (I don't need code review to tell me *that* :) )
Thanks for the eyeballing.
ChrisA