summaryrefslogtreecommitdiff
path: root/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
diff options
context:
space:
mode:
authorPierre Gondois <Pierre.Gondois@arm.com>2021-10-08 15:46:18 +0100
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-10-08 15:39:42 +0000
commit2dd7dd3952c78e1c3bc0e512be67a359a091215f (patch)
treed6d168cbf29b386a096dfec80fce35788694fc57 /DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
parent7b2022d39e99b825a16c8805974c3366d6c7dd3b (diff)
downloadedk2-2dd7dd3952c78e1c3bc0e512be67a359a091215f.zip
edk2-2dd7dd3952c78e1c3bc0e512be67a359a091215f.tar.gz
edk2-2dd7dd3952c78e1c3bc0e512be67a359a091215f.tar.bz2
DynamicTablesPkg: Clear pointer in node creation fcts
The following functions: - AmlCreateRootNode() - AmlCreateObjectNode() - AmlCreateDataNode() create a node and return it by populating a pointer. This pointer should only be considered/used if the function returns successfully. Otherwise, the value stored in this pointer should be ignored. For their error handling, some other functions assume that this pointer is reset to NULL if an error occurs during a node creation. To make this assumption correct, explicitly clear this input pointer. Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com>
Diffstat (limited to 'DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c')
-rw-r--r--DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
index 5d310f2..4775b68 100644
--- a/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
+++ b/DynamicTablesPkg/Library/Common/AmlLib/CodeGen/AmlCodeGen.c
@@ -22,7 +22,9 @@
@param [in] Node Newly created node.
@param [in] ParentNode If provided, set ParentNode as the parent
of the node created.
- @param [out] NewObjectNode If success, contains the created object node.
+ @param [out] NewObjectNode If not NULL:
+ - and Success, contains the created Node.
+ - and Error, reset to NULL.
@retval EFI_SUCCESS The function completed successfully.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -39,7 +41,7 @@ LinkNode (
EFI_STATUS Status;
if (NewObjectNode != NULL) {
- *NewObjectNode = Node;
+ *NewObjectNode = NULL;
}
// Add RdNode as the last element.
@@ -51,6 +53,10 @@ LinkNode (
}
}
+ if (NewObjectNode != NULL) {
+ *NewObjectNode = Node;
+ }
+
return EFI_SUCCESS;
}