]> granicus.if.org Git - onig/commitdiff
Fix CVE-2019-13224: don't allow different encodings for onig_new_deluxe()
authorK.Kosako <kosako@sofnec.co.jp>
Thu, 27 Jun 2019 08:25:26 +0000 (17:25 +0900)
committerK.Kosako <kkosako0@gmail.com>
Sat, 6 Jul 2019 12:38:51 +0000 (21:38 +0900)
src/regext.c

index fa4b360bc8bc2fbea883a83581ee1ec92297e17c..965c7933d9c06c13284e4245115676647bf2b2d8 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "regint.h"
 
+#if 0
 static void
 conv_ext0be32(const UChar* s, const UChar* end, UChar* conv)
 {
@@ -158,6 +159,7 @@ conv_encoding(OnigEncoding from, OnigEncoding to, const UChar* s, const UChar* e
 
   return ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION;
 }
+#endif
 
 extern int
 onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
@@ -169,9 +171,7 @@ onig_new_deluxe(regex_t** reg, const UChar* pattern, const UChar* pattern_end,
   if (IS_NOT_NULL(einfo)) einfo->par = (UChar* )NULL;
 
   if (ci->pattern_enc != ci->target_enc) {
-    r = conv_encoding(ci->pattern_enc, ci->target_enc, pattern, pattern_end,
-                      &cpat, &cpat_end);
-    if (r != 0) return r;
+    return ONIGERR_NOT_SUPPORTED_ENCODING_COMBINATION;
   }
   else {
     cpat     = (UChar* )pattern;