Missing type check in object_lower_set_index
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=5911
Reported by Martin Stjernholm mast@roxen.com
The following program dumps core in 7.9 (at least with rtldebug):
string s;
int main()
{
s = (mixed) Standards.UUID.make_version4();
werror ("%O\n", s);
}
The reason is that object_lower_set_index doesn't properly catch that an object gets assigned to the string short svalue. A type check is missing in the default clause in the switch in that function.
It appears that the rtt is PIKE_T_NO_REF_FLAG|PIKE_T_STRING in this particular case, though. Since there's no define for that combination it might be a sign that something is more seriously broken.