[Pcre-svn] [1686] code/trunk: Make pcretest check size of \O…

Top Page
Delete this message
Author: Subversion repository
Date:  
To: pcre-svn
Subject: [Pcre-svn] [1686] code/trunk: Make pcretest check size of \O argument.
Revision: 1686
          http://vcs.pcre.org/viewvc?view=rev&revision=1686
Author:   ph10
Date:     2017-02-23 16:24:08 +0000 (Thu, 23 Feb 2017)
Log Message:
-----------
Make pcretest check size of \O argument.


Modified Paths:
--------------
    code/trunk/ChangeLog
    code/trunk/pcretest.c


Modified: code/trunk/ChangeLog
===================================================================
--- code/trunk/ChangeLog    2017-02-22 17:37:47 UTC (rev 1685)
+++ code/trunk/ChangeLog    2017-02-23 16:24:08 UTC (rev 1686)
@@ -23,9 +23,14 @@
 5.  Avoid use of a potentially overflowing buffer in pcregrep (patch by Petr 
 Pisar).


-6. Check for values < 256 when calling isprint() in pcretest.
+6. Fuzzers have reported issues in pcretest. These are NOT serious (it is,
+after all, just a test program). However, to stop the reports, some easy ones
+are fixed:

+    (a) Check for values < 256 when calling isprint() in pcretest.
+    (b) Give an error for too big a number after \O. 


+
Version 8.40 11-January-2017
----------------------------


Modified: code/trunk/pcretest.c
===================================================================
--- code/trunk/pcretest.c    2017-02-22 17:37:47 UTC (rev 1685)
+++ code/trunk/pcretest.c    2017-02-23 16:24:08 UTC (rev 1686)
@@ -4834,7 +4834,16 @@
         continue;


         case 'O':
-        while(isdigit(*p)) n = n * 10 + *p++ - '0';
+        while(isdigit(*p)) 
+          {
+          if (n > (INT_MAX-10)/10)   /* Hack to stop fuzzers */
+            {
+            printf("** \\O argument is too big\n");
+            yield = 1;
+            goto EXIT;   
+            }  
+          n = n * 10 + *p++ - '0';
+          } 
         if (n > size_offsets_max)
           {
           size_offsets_max = n;