[PATCH 2/5] widl: Increase max import depth.

Józef Kucia jkucia at codeweavers.com
Fri Jan 26 15:09:03 CST 2018


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---

Fixes memory corruption when processing winedxgi.idl after changes in
one of the next patches.

---
 tools/widl/parser.l | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tools/widl/parser.l b/tools/widl/parser.l
index 6520ce72e6b3..6afc3e7ef19c 100644
--- a/tools/widl/parser.l
+++ b/tools/widl/parser.l
@@ -78,7 +78,7 @@ static int attr_token(const char *kw);
 
 static warning_list_t *disabled_warnings = NULL;
 
-#define MAX_IMPORT_DEPTH 10
+#define MAX_IMPORT_DEPTH 20
 struct {
   YY_BUFFER_STATE state;
   char *input_name;
@@ -524,6 +524,9 @@ int do_import(char *fname)
         else if (!(path = wpp_find_include( fname, input_name )))
             error_loc("Unable to open include file %s\n", fname);
 
+    if (import_stack_ptr == MAX_IMPORT_DEPTH)
+        error_loc("Exceeded max import depth\n");
+
 	import_stack[ptr].temp_name = temp_name;
 	import_stack[ptr].input_name = input_name;
 	import_stack[ptr].line_number = line_number;
-- 
2.13.6




More information about the wine-devel mailing list