| Index: mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
|
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
|
| index e1596d008cac440af9a9edf9d74ed373f15d7d49..bd05a06de726e0d36c8e098d27718377481d05f3 100644
|
| --- a/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
|
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/struct_macros.tmpl
|
| @@ -15,15 +15,20 @@
|
| {%- set name = packed_field.field.name %}
|
| {%- if packed_field.field.kind|is_object_kind %}
|
| {%- set wrapper_type = packed_field.field.kind|cpp_wrapper_type %}
|
| - if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset) ||
|
| - !{{wrapper_type}}::Data_::Validate(
|
| + if (!mojo::internal::ValidateEncodedPointer(&object->{{name}}.offset)) {
|
| + ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_POINTER);
|
| + return false;
|
| + }
|
| + if (!{{wrapper_type}}::Data_::Validate(
|
| mojo::internal::DecodePointerRaw(&object->{{name}}.offset),
|
| bounds_checker)) {
|
| return false;
|
| }
|
| {%- elif packed_field.field.kind|is_handle_kind %}
|
| - if (!bounds_checker->ClaimHandle(object->{{name}}))
|
| + if (!bounds_checker->ClaimHandle(object->{{name}})) {
|
| + ReportValidationError(mojo::internal::VALIDATION_ERROR_ILLEGAL_HANDLE);
|
| return false;
|
| + }
|
| {%- endif %}
|
| {%- endfor %}
|
|
|
|
|