Re: "Attempt to free non-existent shared string"? (with patch)
authorGurusamy Sarathy <gsar@engin.umich.edu>
Fri, 20 Sep 1996 19:38:57 +0000 (15:38 -0400)
committerAndy Dougherty <doughera@lafcol.lafayette.edu>
Fri, 20 Sep 1996 19:38:57 +0000 (15:38 -0400)
commitbf5b86ae2f8af4d8daece5777d77a067ab9cf194
tree19e88cc9578d8701bf9ea1faefe3d1aa9fe0f435
parent72940dca186befa0716f5b6a09c9bdd527de5c66
Re: "Attempt to free non-existent shared string"? (with patch)

I found a subtle problem with the lazydelete mechanism (which is used
to postpone the delete of a entry that may be getting iterated over).
I was using the HeKLEN slot to hold the hint, but the real HeKLEN is
needed later to call unsharepvn().  This means that only magical
hash entries can use the HeKLEN slot to hold flags.

Here's a tested patch against 5.00305 that fixes the problem.
The patch simply moves the LAZYDEL hint to become a SV-level private
flag.
hv.h