From: Ben Pfaff Date: Sun, 21 Jul 2019 18:27:19 +0000 (-0700) Subject: perl-module: Init and destroy for long strings in set_missing_values(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=606972e74b9501ed3c3528e1826625b0ed98037c;p=pspp perl-module: Init and destroy for long strings in set_missing_values(). Otherwise long strings segfault. --- diff --git a/perl-module/PSPP.xs b/perl-module/PSPP.xs index f6655b8ded..c563b40f63 100644 --- a/perl-module/PSPP.xs +++ b/perl-module/PSPP.xs @@ -412,12 +412,15 @@ INIT: croak ("No more than 3 missing values are permitted"); for (i = 0; i < items - 1; ++i) - scalar_to_value (&val[i], ST(i+1), var); + make_value_from_scalar (&val[i], ST(i+1), var); CODE: struct missing_values mv; mv_init (&mv, var_get_width (var)); for (i = 0 ; i < items - 1; ++i ) - mv_add_value (&mv, &val[i]); + { + mv_add_value (&mv, &val[i]); + value_destroy (&val[i], var_get_width (var)); + } var_set_missing_values (var, &mv);