From 3694ae08171c676b0a142488303824b7d589b5e5 Mon Sep 17 00:00:00 2001
From: Wouter van Oortmerssen <aardappel@gmail.com>
Date: Thu, 18 Jan 2018 11:41:43 -0800
Subject: [PATCH] Disallow defaults on structs.

Change-Id: Ia098126c92ea6f8abe94561bd9c09b29ac8f61f5
Context: https://github.com/google/flatbuffers/issues/4591
Tested: on Linux.
---
 src/idl_parser.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp
index e89a3915..97eb426b 100644
--- a/src/idl_parser.cpp
+++ b/src/idl_parser.cpp
@@ -648,8 +648,9 @@ CheckedError Parser::ParseField(StructDef &struct_def) {
 
   if (token_ == '=') {
     NEXT();
-    if (!IsScalar(type.base_type))
-      return Error("default values currently only supported for scalars");
+    if (!IsScalar(type.base_type) || struct_def.fixed)
+      return Error(
+            "default values currently only supported for scalars in tables");
     ECHECK(ParseSingleValue(field->value));
   }
   if (IsFloat(field->value.type.base_type)) {
-- 
GitLab