While looking into the recent lread.c changes I noticed that the patch for Bug#23660 introduced the possibility of a core dump when substituting in an already-circular data structure. I installed the attached, which I hope is self-explanatory.