Index: mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl |
diff --git a/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl |
index 374b0976b1831b66b13f96b0674ba0b07fd5a538..38dbde1e4aff90f6945d6171ee39512888709972 100644 |
--- a/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl |
+++ b/mojo/public/tools/bindings/generators/cpp_templates/struct_definition.tmpl |
@@ -5,6 +5,15 @@ |
bool {{class_name}}::Validate( |
const void* data, |
mojo::internal::ValidationContext* validation_context) { |
+ mojo::internal::ValidationContext::ScopedDepthTracker depth_tracker( |
yzshen1
2016/09/06 17:03:10
This is not the only place: we need to consider th
tibell
2016/09/07 05:41:20
Done.
I was aware of this. The reason I didn't do
|
+ validation_context); |
+ if (validation_context->ExceedsMaxDepth()) { |
+ ReportValidationError( |
+ validation_context, |
+ mojo::internal::VALIDATION_ERROR_MAX_RECURSION_DEPTH); |
+ return false; |
+ } |
+ |
if (!data) |
return true; |