Skip to content

Commit 0c4f4a9

Browse files
ulfalizergalak
authored andcommitted
scripts: edtlib: Fix broken 'required: true' check for booleans
Node._prop_val() returned too early for non-existent booleans, letting missing 'required: true' booleans slip through without an error. Fix it by rearranging the code to always do the 'required' check before returning. Signed-off-by: Ulf Magnusson <[email protected]>
1 parent 178f16f commit 0c4f4a9

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

scripts/dts/edtlib.py

+8-10
Original file line numberDiff line numberDiff line change
@@ -894,15 +894,6 @@ def _prop_val(self, name, prop_type, required, default):
894894
node = self._node
895895
prop = node.props.get(name)
896896

897-
if prop_type == "boolean":
898-
if not prop:
899-
return False
900-
if prop.type is not TYPE_EMPTY:
901-
_err("'{0}' in {1!r} is defined with 'type: boolean' in {2}, "
902-
"but is assigned a value ('{3}') instead of being empty "
903-
"('{0};')".format(name, node, self.binding_path, prop))
904-
return True
905-
906897
if not prop:
907898
if required and self.enabled:
908899
_err("'{}' is marked as required in 'properties:' in {}, but "
@@ -918,7 +909,14 @@ def _prop_val(self, name, prop_type, required, default):
918909
return bytes(default)
919910
return default
920911

921-
return None
912+
return False if prop_type == "boolean" else None
913+
914+
if prop_type == "boolean":
915+
if prop.type is not TYPE_EMPTY:
916+
_err("'{0}' in {1!r} is defined with 'type: boolean' in {2}, "
917+
"but is assigned a value ('{3}') instead of being empty "
918+
"('{0};')".format(name, node, self.binding_path, prop))
919+
return True
922920

923921
if prop_type == "int":
924922
return prop.to_num()

0 commit comments

Comments
 (0)