diff options
author | David Golden <dagolden@cpan.org> | 2011-12-09 14:32:08 -0500 |
---|---|---|
committer | David Golden <dagolden@cpan.org> | 2011-12-09 14:44:42 -0500 |
commit | 73512201d7f34e916ab9c04a5f41248b4740e29a (patch) | |
tree | f6adbd4192d7a104fa2f4ee5fb28c9de95c8f7f4 /universal.c | |
parent | b9e5552c5b9043f5218eef298d903a543fa001b5 (diff) | |
download | perl-73512201d7f34e916ab9c04a5f41248b4740e29a.tar.gz |
Fix segfault on overloaded arithmetic assignment
Consider an arithmetic assignment operation of the form
$left += $right
A segfault was occuring in the case where $right is an overloaded object
but $left is not; and where $right does not override "+=" but does
provide a 'nomethod' override. Internally, Perl_amagic_call was
attempting to clone $left as if it were an overloaded object, causing the
segfault. This commit fixes the segfault by only cloning the left
operand when the left operand is the overloaded one.
Diffstat (limited to 'universal.c')
0 files changed, 0 insertions, 0 deletions