This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #125781] handle range overflow when Size_t is smaller than IV
authorTony Cook <tony@develop-help.com>
Tue, 11 Aug 2015 05:49:37 +0000 (15:49 +1000)
committerTony Cook <tony@develop-help.com>
Tue, 18 Aug 2015 05:27:57 +0000 (15:27 +1000)
pp_ctl.c

index 5b58f47..50db9a8 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -1206,7 +1206,11 @@ PP(pp_flop)
                     /* The wraparound of signed integers is undefined
                      * behavior, but here we aim for count >=1, and
                      * negative count is just wrong. */
-                    if (n < 1)
+                    if (n < 1
+#if IVSIZE > Size_t_size
+                        || n > SSize_t_MAX
+#endif
+                        )
                         overflow = TRUE;
                 }
                 if (overflow)