// If size of data changes, allocate pool and copy data.\r
//\r
Entry->Data = AllocatePool (DataSize);\r
+ ASSERT (Entry->Data != NULL);\r
Entry->DataSize = DataSize;\r
CopyMem (Entry->Data, Data, DataSize);\r
}\r
NextVariable->MonotonicCount = MonotonicCount;\r
SetMem (&NextVariable->TimeStamp, sizeof (EFI_TIME), 0);\r
\r
- if (((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) && \r
- ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0)) {\r
- CopyMem (&NextVariable->TimeStamp, TimeStamp, sizeof (EFI_TIME));\r
- } else if (\r
- ((Attributes & EFI_VARIABLE_APPEND_WRITE) != 0) && \r
- ((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0)) {\r
+ if (((Attributes & EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS) != 0) &&\r
+ TimeStamp != NULL) {\r
+ if ((Attributes & EFI_VARIABLE_APPEND_WRITE) == 0) {\r
+ CopyMem (&NextVariable->TimeStamp, TimeStamp, sizeof (EFI_TIME));\r
+ } else {\r
//\r
// In the case when the EFI_VARIABLE_APPEND_WRITE attribute is set, only\r
// when the new TimeStamp value is later than the current timestamp associated\r
if (CompareTimeStamp (&Variable->CurrPtr->TimeStamp, TimeStamp)) {\r
CopyMem (&NextVariable->TimeStamp, TimeStamp, sizeof (EFI_TIME));\r
}\r
+ }\r
}\r
\r
//\r