Fix infinite loop in Perl_my_strftime() for failing strftime()
Steve Hay [Wed, 22 Nov 2006 15:11:41 +0000 (15:11 +0000)]
p4raw-id: //depot/perl@29350

util.c

diff --git a/util.c b/util.c
index af1e22a..405c921 100644 (file)
--- a/util.c
+++ b/util.c
@@ -3829,7 +3829,7 @@ Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, in
   else {
     /* Possibly buf overflowed - try again with a bigger buf */
     const int fmtlen = strlen(fmt);
-    const int bufsize = fmtlen + buflen;
+    int bufsize = fmtlen + buflen;
 
     Newx(buf, bufsize, char);
     while (buf) {
@@ -3842,7 +3842,8 @@ Perl_my_strftime(pTHX_ const char *fmt, int sec, int min, int hour, int mday, in
        buf = NULL;
        break;
       }
-      Renew(buf, bufsize*2, char);
+      bufsize *= 2;
+      Renew(buf, bufsize, char);
     }
     return buf;
   }