This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
croak on sv_setpvn() on a glob
authorZefram <zefram@fysh.org>
Sat, 28 Jan 2017 05:51:00 +0000 (05:51 +0000)
committerZefram <zefram@fysh.org>
Sat, 28 Jan 2017 05:52:08 +0000 (05:52 +0000)
commita4031a721e0a1941c14467c7671da2ee1b91c969
treefe1a96a32464472b97c7549702d9fa34610c6839
parentbb78386f13c18a1a7dae932b9b36e977056b13c7
croak on sv_setpvn() on a glob

A real glob cannot be written to as a string scalar, and a sv_setpvn()
call attempting to do so used to hit an assertion.  (sv_force_normal()
coerces glob copies to strings, but leaves real globs unchanged.)
This isn't exposed through assignment ops, which have special semantics
for assignments to globs, but it can be reached through XS subs that
mutate arguments, and through "^" formats.  Change sv_setpvn() to check
for globs and croak cleanly.  Fixes [perl #129147].
sv.c
t/op/write.t