33 lines
905 B
Diff
33 lines
905 B
Diff
|
From e7e69c85c7e8e0cb75b831e606ad4f26f18b11ff Mon Sep 17 00:00:00 2001
|
||
|
From: Nicolas R <atoomic@cpan.org>
|
||
|
Date: Mon, 31 Oct 2016 11:53:17 -0600
|
||
|
Subject: [PATCH] Avoid a segfault when untying an object
|
||
|
MIME-Version: 1.0
|
||
|
Content-Type: text/plain; charset=UTF-8
|
||
|
Content-Transfer-Encoding: 8bit
|
||
|
|
||
|
Check if the tied object has a stash set
|
||
|
before calling UNTIE method.
|
||
|
|
||
|
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||
|
---
|
||
|
pp_sys.c | 2 +-
|
||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/pp_sys.c b/pp_sys.c
|
||
|
index 672e7de08e..6d4dd86b7f 100644
|
||
|
--- a/pp_sys.c
|
||
|
+++ b/pp_sys.c
|
||
|
@@ -1017,7 +1017,7 @@ PP(pp_untie)
|
||
|
|
||
|
if ((mg = SvTIED_mg(sv, how))) {
|
||
|
SV * const obj = SvRV(SvTIED_obj(sv, mg));
|
||
|
- if (obj) {
|
||
|
+ if (obj && SvSTASH(obj)) {
|
||
|
GV * const gv = gv_fetchmethod_autoload(SvSTASH(obj), "UNTIE", FALSE);
|
||
|
CV *cv;
|
||
|
if (gv && isGV(gv) && (cv = GvCV(gv))) {
|
||
|
--
|
||
|
2.13.6
|
||
|
|