Segfault perl with Clone::clone
Posted Thu 12 Oct 2023 06:48:32 PM CEST
Florian Lohoff
Interesting - Using clone on a datastructure containing a ref to a dbh e.g. result from DBI->connect and using that ref from the cloned object lets perl segfault:
Short form:
$dbh=DBI->connect(...);
$a={ dbh => $dbh };
$b=Clone::clone($a);
$b->{dbh}->prepare(...)
gdb backtrace shows:
(gdb) bt
#0 0x00007f409c5e387b in XS_DBI_dispatch () from /usr/lib/x86_64-linux-gnu/perl5/5.36/auto/DBI/DBI.so
#1 0x0000561f3f0a5f18 in Perl_pp_entersub ()
#2 0x0000561f3f09bef6 in Perl_runops_standard ()
#3 0x0000561f3effa779 in perl_run ()
#4 0x0000561f3efcc4b2 in main ()