[DBD::Pg] Mortalise destringifed arrayref before sv_setsv()

[email protected] Tue, 23 Dec 2014 11:19:14 +0000
Newsgroups perl.dbd.pg.changes
Message-ID <[email protected]>
Committed by =?UTF-8?q?Dagfinn=20Ilmari=20Manns=C3=A5ker?= <[email protected]>

Mortalise destringifed arrayref before sv_setsv()

sv_setsv copies the reference, so we need to make sure the original one
gets freed and we don't leak the array
---
 dbdimp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/dbdimp.c b/dbdimp.c
index 40c62fa..022058b 100644
--- a/dbdimp.c
+++ b/dbdimp.c
@@ -3648,7 +3648,7 @@ AV * dbd_st_fetch (SV * sth, imp_sth_t * imp_sth)
 			if (type_info
 				&& 0 == strncmp(type_info->arrayout, "array", 5)
 				&& imp_dbh->expand_array) {
-				sv_setsv(sv, pg_destringify_array(aTHX_ imp_dbh, value, type_info));
+				sv_setsv(sv, sv_2mortal(pg_destringify_array(aTHX_ imp_dbh, value, type_info)));
 			}
 			else {
 				if (type_info) {
-- 
1.8.4