This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Coverity notes that resource are leaked in the unfinished and never
authorNicholas Clark <nick@ccl4.org>
Sat, 15 Apr 2006 21:11:44 +0000 (21:11 +0000)
committerNicholas Clark <nick@ccl4.org>
Sat, 15 Apr 2006 21:11:44 +0000 (21:11 +0000)
called function _utf8_to_bytes.

p4raw-id: //depot/perl@27824

ext/Encode/Encode.xs

index b60ead4..47087da 100644 (file)
@@ -696,10 +696,12 @@ CODE:
            /* Must do things the slow way */
            U8 *dest;
             /* We need a copy to pass to check() */
-           U8 *src  = (U8*)savepv((char *)s);
+           U8 *src  = s;
            U8 *send = s + len;
+           U8 *d0;
 
            New(83, dest, len, U8); /* I think */
+           d0 = dest;
 
            while (s < send) {
                 if (*s < 0x80){
@@ -735,6 +737,9 @@ CODE:
                  *dest++ = (U8)uv;
                }
            }
+           RETVAL = dest - d0;
+           sv_usepvn(sv, (char *)dest, RETVAL);
+           SvUTF8_off(sv);
        } else {
            RETVAL = (utf8_to_bytes(s, &len) ? len : 0);
        }