This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
POSIX.xs: Avoid a leak in setlocale()
authorKarl Williamson <khw@cpan.org>
Fri, 4 Mar 2016 16:34:40 +0000 (09:34 -0700)
committerKarl Williamson <khw@cpan.org>
Fri, 4 Mar 2016 19:04:20 +0000 (12:04 -0700)
Tony Cook suggested this fix.

ext/POSIX/POSIX.xs
ext/POSIX/lib/POSIX.pm

index f46fedc..281bea8 100644 (file)
@@ -2184,6 +2184,7 @@ setlocale(category, locale = 0)
 
         /* Save retval since subsequent setlocale() calls may overwrite it. */
         retval = savepv(retval);
+        SAVEFREEPV(retval);
 
         /* For locale == 0, we may have switched to NUMERIC_UNDERLYING.  Switch
          * back */
@@ -2259,8 +2260,6 @@ setlocale(category, locale = 0)
        }
     OUTPUT:
        RETVAL
-    CLEANUP:
-        Safefree(RETVAL);
 
 NV
 acos(x)
index 2a5829c..e9c1375 100644 (file)
@@ -4,7 +4,7 @@ use warnings;
 
 our ($AUTOLOAD, %SIGRT);
 
-our $VERSION = '1.63';
+our $VERSION = '1.64';
 
 require XSLoader;