Florian Weimer 47bc58
diff -ur apr-1.6.3.orig/test/teststr.c apr-1.6.3/test/teststr.c
Florian Weimer 47bc58
--- apr-1.6.3.orig/test/teststr.c	2016-03-03 17:11:16.000000000 +0100
Florian Weimer 47bc58
+++ apr-1.6.3/test/teststr.c	2018-01-29 18:54:44.748931098 +0100
Florian Weimer 47bc58
@@ -307,10 +307,15 @@
Florian Weimer 47bc58
     for (; off < 999999999; off += 999) {
Florian Weimer 47bc58
         apr_strfsize(off, buf);
Florian Weimer 47bc58
     }
Florian Weimer 47bc58
-    for (off = 1; off < LONG_MAX && off > 0; off *= 2) {
Florian Weimer 47bc58
+
Florian Weimer 47bc58
+    off = 1;
Florian Weimer 47bc58
+    while (1) {
Florian Weimer 47bc58
         apr_strfsize(off, buf);
Florian Weimer 47bc58
         apr_strfsize(off + 1, buf);
Florian Weimer 47bc58
         apr_strfsize(off - 1, buf);
Florian Weimer 47bc58
+        if (off > LONG_MAX / 2)
Florian Weimer 47bc58
+            break;
Florian Weimer 47bc58
+        off *= 2;
Florian Weimer 47bc58
     }
Florian Weimer 47bc58
 
Florian Weimer 47bc58
     ABTS_ASSERT(tc, "strfsize overflowed", buf[5] == '$');