CACert = NULL;\r
CACertData = NULL;\r
Data = NULL;\r
+ Attr = 0;\r
\r
Status = ReadFileContent (\r
Private->FileContext->FHandle,\r
CopyMem ((UINT8* ) (CACertData->SignatureData), X509Data, X509DataSize);\r
\r
//\r
- // Check if signature database entry has been already existed.\r
- // If true, use EFI_VARIABLE_APPEND_WRITE attribute to append the\r
- // new signature data to original variable\r
+ // Check if the signature database entry already exists. If it does, use the\r
+ // EFI_VARIABLE_APPEND_WRITE attribute to append the new signature data to\r
+ // the original variable, plus preserve the original variable attributes.\r
//\r
- Attr = TLS_AUTH_CONFIG_VAR_BASE_ATTR;\r
-\r
Status = gRT->GetVariable(\r
VariableName,\r
&gEfiTlsCaCertificateGuid,\r
- NULL,\r
+ &Attr,\r
&DataSize,\r
NULL\r
);\r
if (Status == EFI_BUFFER_TOO_SMALL) {\r
Attr |= EFI_VARIABLE_APPEND_WRITE;\r
- } else if (Status != EFI_NOT_FOUND) {\r
+ } else if (Status == EFI_NOT_FOUND) {\r
+ Attr = TLS_AUTH_CONFIG_VAR_BASE_ATTR;\r
+ } else {\r
goto ON_EXIT;\r
}\r
\r