diff options
Diffstat (limited to 'ShellPkg/Application/Shell/ShellEnvVar.c')
-rw-r--r-- | ShellPkg/Application/Shell/ShellEnvVar.c | 357 |
1 files changed, 193 insertions, 164 deletions
diff --git a/ShellPkg/Application/Shell/ShellEnvVar.c b/ShellPkg/Application/Shell/ShellEnvVar.c index 04fed3b..b97cfe9 100644 --- a/ShellPkg/Application/Shell/ShellEnvVar.c +++ b/ShellPkg/Application/Shell/ShellEnvVar.c @@ -14,7 +14,7 @@ //
// The list is used to cache the environment variables.
//
-ENV_VAR_LIST gShellEnvVarList;
+ENV_VAR_LIST gShellEnvVarList;
/**
Reports whether an environment variable is Volatile or Non-Volatile.
@@ -27,8 +27,8 @@ ENV_VAR_LIST gShellEnvVarList; **/
EFI_STATUS
IsVolatileEnv (
- IN CONST CHAR16 *EnvVarName,
- OUT BOOLEAN *Volatile
+ IN CONST CHAR16 *EnvVarName,
+ OUT BOOLEAN *Volatile
)
{
EFI_STATUS Status;
@@ -38,29 +38,35 @@ IsVolatileEnv ( ASSERT (Volatile != NULL);
- Size = 0;
+ Size = 0;
Buffer = NULL;
//
// get the variable
//
- Status = gRT->GetVariable((CHAR16*)EnvVarName,
- &gShellVariableGuid,
- &Attribs,
- &Size,
- Buffer);
+ Status = gRT->GetVariable (
+ (CHAR16 *)EnvVarName,
+ &gShellVariableGuid,
+ &Attribs,
+ &Size,
+ Buffer
+ );
if (Status == EFI_BUFFER_TOO_SMALL) {
- Buffer = AllocateZeroPool(Size);
+ Buffer = AllocateZeroPool (Size);
if (Buffer == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- Status = gRT->GetVariable((CHAR16*)EnvVarName,
- &gShellVariableGuid,
- &Attribs,
- &Size,
- Buffer);
- FreePool(Buffer);
+
+ Status = gRT->GetVariable (
+ (CHAR16 *)EnvVarName,
+ &gShellVariableGuid,
+ &Attribs,
+ &Size,
+ Buffer
+ );
+ FreePool (Buffer);
}
+
//
// not found means volatile
//
@@ -68,6 +74,7 @@ IsVolatileEnv ( *Volatile = TRUE;
return EFI_SUCCESS;
}
+
if (EFI_ERROR (Status)) {
return Status;
}
@@ -75,7 +82,7 @@ IsVolatileEnv ( //
// check for the Non Volatile bit
//
- *Volatile = !(BOOLEAN) ((Attribs & EFI_VARIABLE_NON_VOLATILE) == EFI_VARIABLE_NON_VOLATILE);
+ *Volatile = !(BOOLEAN)((Attribs & EFI_VARIABLE_NON_VOLATILE) == EFI_VARIABLE_NON_VOLATILE);
return EFI_SUCCESS;
}
@@ -85,30 +92,33 @@ IsVolatileEnv ( @param[in] List The pointer to pointer to list.
**/
VOID
-FreeEnvironmentVariableList(
- IN LIST_ENTRY *List
+FreeEnvironmentVariableList (
+ IN LIST_ENTRY *List
)
{
- ENV_VAR_LIST *Node;
+ ENV_VAR_LIST *Node;
ASSERT (List != NULL);
if (List == NULL) {
return;
}
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(List)
- ; !IsListEmpty(List)
- ; Node = (ENV_VAR_LIST*)GetFirstNode(List)
- ){
- ASSERT(Node != NULL);
- RemoveEntryList(&Node->Link);
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (List)
+ ; !IsListEmpty (List)
+ ; Node = (ENV_VAR_LIST *)GetFirstNode (List)
+ )
+ {
+ ASSERT (Node != NULL);
+ RemoveEntryList (&Node->Link);
if (Node->Key != NULL) {
- FreePool(Node->Key);
+ FreePool (Node->Key);
}
+
if (Node->Val != NULL) {
- FreePool(Node->Val);
+ FreePool (Node->Val);
}
- FreePool(Node);
+
+ FreePool (Node);
}
}
@@ -121,18 +131,18 @@ FreeEnvironmentVariableList( @retval EFI_SUCCESS the list was created successfully.
**/
EFI_STATUS
-GetEnvironmentVariableList(
- IN OUT LIST_ENTRY *ListHead
+GetEnvironmentVariableList (
+ IN OUT LIST_ENTRY *ListHead
)
{
- CHAR16 *VariableName;
- UINTN NameSize;
- UINTN NameBufferSize;
- EFI_STATUS Status;
- EFI_GUID Guid;
- UINTN ValSize;
- UINTN ValBufferSize;
- ENV_VAR_LIST *VarList;
+ CHAR16 *VariableName;
+ UINTN NameSize;
+ UINTN NameBufferSize;
+ EFI_STATUS Status;
+ EFI_GUID Guid;
+ UINTN ValSize;
+ UINTN ValBufferSize;
+ ENV_VAR_LIST *VarList;
if (ListHead == NULL) {
return (EFI_INVALID_PARAMETER);
@@ -140,34 +150,36 @@ GetEnvironmentVariableList( Status = EFI_SUCCESS;
- ValBufferSize = INIT_DATA_BUFFER_SIZE;
+ ValBufferSize = INIT_DATA_BUFFER_SIZE;
NameBufferSize = INIT_NAME_BUFFER_SIZE;
- VariableName = AllocateZeroPool(NameBufferSize);
+ VariableName = AllocateZeroPool (NameBufferSize);
if (VariableName == NULL) {
return (EFI_OUT_OF_RESOURCES);
}
+
*VariableName = CHAR_NULL;
- while (!EFI_ERROR(Status)) {
+ while (!EFI_ERROR (Status)) {
NameSize = NameBufferSize;
- Status = gRT->GetNextVariableName(&NameSize, VariableName, &Guid);
- if (Status == EFI_NOT_FOUND){
+ Status = gRT->GetNextVariableName (&NameSize, VariableName, &Guid);
+ if (Status == EFI_NOT_FOUND) {
Status = EFI_SUCCESS;
break;
} else if (Status == EFI_BUFFER_TOO_SMALL) {
NameBufferSize = NameSize > NameBufferSize * 2 ? NameSize : NameBufferSize * 2;
- SHELL_FREE_NON_NULL(VariableName);
- VariableName = AllocateZeroPool(NameBufferSize);
+ SHELL_FREE_NON_NULL (VariableName);
+ VariableName = AllocateZeroPool (NameBufferSize);
if (VariableName == NULL) {
Status = EFI_OUT_OF_RESOURCES;
break;
}
+
NameSize = NameBufferSize;
- Status = gRT->GetNextVariableName(&NameSize, VariableName, &Guid);
+ Status = gRT->GetNextVariableName (&NameSize, VariableName, &Guid);
}
- if (!EFI_ERROR(Status) && CompareGuid(&Guid, &gShellVariableGuid)){
- VarList = AllocateZeroPool(sizeof(ENV_VAR_LIST));
+ if (!EFI_ERROR (Status) && CompareGuid (&Guid, &gShellVariableGuid)) {
+ VarList = AllocateZeroPool (sizeof (ENV_VAR_LIST));
if (VarList == NULL) {
Status = EFI_OUT_OF_RESOURCES;
} else {
@@ -177,12 +189,13 @@ GetEnvironmentVariableList( //
VarList->Val = AllocateZeroPool (ValSize + sizeof (CHAR16));
if (VarList->Val == NULL) {
- SHELL_FREE_NON_NULL(VarList);
- Status = EFI_OUT_OF_RESOURCES;
- break;
+ SHELL_FREE_NON_NULL (VarList);
+ Status = EFI_OUT_OF_RESOURCES;
+ break;
}
- Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(VariableName, &VarList->Atts, &ValSize, VarList->Val);
- if (Status == EFI_BUFFER_TOO_SMALL){
+
+ Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES (VariableName, &VarList->Atts, &ValSize, VarList->Val);
+ if (Status == EFI_BUFFER_TOO_SMALL) {
ValBufferSize = ValSize > ValBufferSize * 2 ? ValSize : ValBufferSize * 2;
SHELL_FREE_NON_NULL (VarList->Val);
//
@@ -190,34 +203,36 @@ GetEnvironmentVariableList( //
VarList->Val = AllocateZeroPool (ValBufferSize + sizeof (CHAR16));
if (VarList->Val == NULL) {
- SHELL_FREE_NON_NULL(VarList);
+ SHELL_FREE_NON_NULL (VarList);
Status = EFI_OUT_OF_RESOURCES;
break;
}
ValSize = ValBufferSize;
- Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES(VariableName, &VarList->Atts, &ValSize, VarList->Val);
+ Status = SHELL_GET_ENVIRONMENT_VARIABLE_AND_ATTRIBUTES (VariableName, &VarList->Atts, &ValSize, VarList->Val);
}
- if (!EFI_ERROR(Status)) {
- VarList->Key = AllocateCopyPool(StrSize(VariableName), VariableName);
+
+ if (!EFI_ERROR (Status)) {
+ VarList->Key = AllocateCopyPool (StrSize (VariableName), VariableName);
if (VarList->Key == NULL) {
- SHELL_FREE_NON_NULL(VarList->Val);
- SHELL_FREE_NON_NULL(VarList);
+ SHELL_FREE_NON_NULL (VarList->Val);
+ SHELL_FREE_NON_NULL (VarList);
Status = EFI_OUT_OF_RESOURCES;
} else {
- InsertTailList(ListHead, &VarList->Link);
+ InsertTailList (ListHead, &VarList->Link);
}
} else {
- SHELL_FREE_NON_NULL(VarList->Val);
- SHELL_FREE_NON_NULL(VarList);
+ SHELL_FREE_NON_NULL (VarList->Val);
+ SHELL_FREE_NON_NULL (VarList);
}
} // if (VarList == NULL) ... else ...
} // compare guid
} // while
+
SHELL_FREE_NON_NULL (VariableName);
- if (EFI_ERROR(Status)) {
- FreeEnvironmentVariableList(ListHead);
+ if (EFI_ERROR (Status)) {
+ FreeEnvironmentVariableList (ListHead);
}
return (Status);
@@ -236,51 +251,56 @@ GetEnvironmentVariableList( @retval EFI_SUCCESS the list was Set successfully.
**/
EFI_STATUS
-SetEnvironmentVariableList(
- IN LIST_ENTRY *ListHead
+SetEnvironmentVariableList (
+ IN LIST_ENTRY *ListHead
)
{
- ENV_VAR_LIST VarList;
- ENV_VAR_LIST *Node;
- EFI_STATUS Status;
- UINTN Size;
+ ENV_VAR_LIST VarList;
+ ENV_VAR_LIST *Node;
+ EFI_STATUS Status;
+ UINTN Size;
- InitializeListHead(&VarList.Link);
+ InitializeListHead (&VarList.Link);
//
// Delete all the current environment variables
//
- Status = GetEnvironmentVariableList(&VarList.Link);
- ASSERT_EFI_ERROR(Status);
-
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(&VarList.Link)
- ; !IsNull(&VarList.Link, &Node->Link)
- ; Node = (ENV_VAR_LIST*)GetNextNode(&VarList.Link, &Node->Link)
- ){
+ Status = GetEnvironmentVariableList (&VarList.Link);
+ ASSERT_EFI_ERROR (Status);
+
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (&VarList.Link)
+ ; !IsNull (&VarList.Link, &Node->Link)
+ ; Node = (ENV_VAR_LIST *)GetNextNode (&VarList.Link, &Node->Link)
+ )
+ {
if (Node->Key != NULL) {
- Status = SHELL_DELETE_ENVIRONMENT_VARIABLE(Node->Key);
+ Status = SHELL_DELETE_ENVIRONMENT_VARIABLE (Node->Key);
}
- ASSERT_EFI_ERROR(Status);
+
+ ASSERT_EFI_ERROR (Status);
}
- FreeEnvironmentVariableList(&VarList.Link);
+ FreeEnvironmentVariableList (&VarList.Link);
//
// set all the variables from the list
//
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(ListHead)
- ; !IsNull(ListHead, &Node->Link)
- ; Node = (ENV_VAR_LIST*)GetNextNode(ListHead, &Node->Link)
- ){
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (ListHead)
+ ; !IsNull (ListHead, &Node->Link)
+ ; Node = (ENV_VAR_LIST *)GetNextNode (ListHead, &Node->Link)
+ )
+ {
Size = StrSize (Node->Val) - sizeof (CHAR16);
if (Node->Atts & EFI_VARIABLE_NON_VOLATILE) {
- Status = SHELL_SET_ENVIRONMENT_VARIABLE_NV(Node->Key, Size, Node->Val);
+ Status = SHELL_SET_ENVIRONMENT_VARIABLE_NV (Node->Key, Size, Node->Val);
} else {
Status = SHELL_SET_ENVIRONMENT_VARIABLE_V (Node->Key, Size, Node->Val);
}
- ASSERT_EFI_ERROR(Status);
+
+ ASSERT_EFI_ERROR (Status);
}
- FreeEnvironmentVariableList(ListHead);
+
+ FreeEnvironmentVariableList (ListHead);
return (Status);
}
@@ -299,8 +319,8 @@ SetEnvironmentVariableList( @sa SetEnvironmentVariableList
**/
EFI_STATUS
-SetEnvironmentVariables(
- IN CONST CHAR16 **Environment
+SetEnvironmentVariables (
+ IN CONST CHAR16 **Environment
)
{
CONST CHAR16 *CurrentString;
@@ -318,61 +338,65 @@ SetEnvironmentVariables( // Build a list identical to the ones used for get/set list functions above
//
for ( CurrentCount = 0
- ;
- ; CurrentCount++
- ){
+ ;
+ ; CurrentCount++
+ )
+ {
CurrentString = Environment[CurrentCount];
if (CurrentString == NULL) {
break;
}
- ASSERT(StrStr(CurrentString, L"=") != NULL);
- Node = AllocateZeroPool(sizeof(ENV_VAR_LIST));
+
+ ASSERT (StrStr (CurrentString, L"=") != NULL);
+ Node = AllocateZeroPool (sizeof (ENV_VAR_LIST));
if (Node == NULL) {
- SetEnvironmentVariableList(&VarList->Link);
+ SetEnvironmentVariableList (&VarList->Link);
return (EFI_OUT_OF_RESOURCES);
}
- Node->Key = AllocateZeroPool((StrStr(CurrentString, L"=") - CurrentString + 1) * sizeof(CHAR16));
+ Node->Key = AllocateZeroPool ((StrStr (CurrentString, L"=") - CurrentString + 1) * sizeof (CHAR16));
if (Node->Key == NULL) {
- SHELL_FREE_NON_NULL(Node);
- SetEnvironmentVariableList(&VarList->Link);
+ SHELL_FREE_NON_NULL (Node);
+ SetEnvironmentVariableList (&VarList->Link);
return (EFI_OUT_OF_RESOURCES);
}
//
// Copy the string into the Key, leaving the last character allocated as NULL to terminate
//
- StrnCpyS( Node->Key,
- StrStr(CurrentString, L"=") - CurrentString + 1,
- CurrentString,
- StrStr(CurrentString, L"=") - CurrentString
- );
+ StrnCpyS (
+ Node->Key,
+ StrStr (CurrentString, L"=") - CurrentString + 1,
+ CurrentString,
+ StrStr (CurrentString, L"=") - CurrentString
+ );
//
// ValueSize = TotalSize - already removed size - size for '=' + size for terminator (the last 2 items cancel each other)
//
- Node->Val = AllocateCopyPool(StrSize(CurrentString) - StrSize(Node->Key), CurrentString + StrLen(Node->Key) + 1);
+ Node->Val = AllocateCopyPool (StrSize (CurrentString) - StrSize (Node->Key), CurrentString + StrLen (Node->Key) + 1);
if (Node->Val == NULL) {
- SHELL_FREE_NON_NULL(Node->Key);
- SHELL_FREE_NON_NULL(Node);
- SetEnvironmentVariableList(&VarList->Link);
+ SHELL_FREE_NON_NULL (Node->Key);
+ SHELL_FREE_NON_NULL (Node);
+ SetEnvironmentVariableList (&VarList->Link);
return (EFI_OUT_OF_RESOURCES);
}
Node->Atts = EFI_VARIABLE_BOOTSERVICE_ACCESS;
if (VarList == NULL) {
- VarList = AllocateZeroPool(sizeof(ENV_VAR_LIST));
+ VarList = AllocateZeroPool (sizeof (ENV_VAR_LIST));
if (VarList == NULL) {
- SHELL_FREE_NON_NULL(Node->Key);
- SHELL_FREE_NON_NULL(Node->Val);
- SHELL_FREE_NON_NULL(Node);
+ SHELL_FREE_NON_NULL (Node->Key);
+ SHELL_FREE_NON_NULL (Node->Val);
+ SHELL_FREE_NON_NULL (Node);
return (EFI_OUT_OF_RESOURCES);
}
- InitializeListHead(&VarList->Link);
+
+ InitializeListHead (&VarList->Link);
}
- InsertTailList(&VarList->Link, &Node->Link);
+ InsertTailList (&VarList->Link, &Node->Link);
} // for loop
//
@@ -380,7 +404,7 @@ SetEnvironmentVariables( // this function also frees the memory and deletes all pre-existing
// shell-guid based environment variables.
//
- return (SetEnvironmentVariableList(&VarList->Link));
+ return (SetEnvironmentVariableList (&VarList->Link));
}
/**
@@ -400,28 +424,30 @@ SetEnvironmentVariables( **/
EFI_STATUS
ShellFindEnvVarInList (
- IN CONST CHAR16 *Key,
- OUT CHAR16 **Value,
- OUT UINTN *ValueSize,
- OUT UINT32 *Atts OPTIONAL
+ IN CONST CHAR16 *Key,
+ OUT CHAR16 **Value,
+ OUT UINTN *ValueSize,
+ OUT UINT32 *Atts OPTIONAL
)
{
- ENV_VAR_LIST *Node;
+ ENV_VAR_LIST *Node;
- if (Key == NULL || Value == NULL || ValueSize == NULL) {
+ if ((Key == NULL) || (Value == NULL) || (ValueSize == NULL)) {
return SHELL_INVALID_PARAMETER;
}
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
- ; !IsNull(&gShellEnvVarList.Link, &Node->Link)
- ; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
- ){
- if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
- *Value = AllocateCopyPool(StrSize(Node->Val), Node->Val);
- *ValueSize = StrSize(Node->Val);
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
+ ; !IsNull (&gShellEnvVarList.Link, &Node->Link)
+ ; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
+ )
+ {
+ if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
+ *Value = AllocateCopyPool (StrSize (Node->Val), Node->Val);
+ *ValueSize = StrSize (Node->Val);
if (Atts != NULL) {
*Atts = Node->Atts;
}
+
return EFI_SUCCESS;
}
}
@@ -444,17 +470,17 @@ ShellFindEnvVarInList ( **/
EFI_STATUS
ShellAddEnvVarToList (
- IN CONST CHAR16 *Key,
- IN CONST CHAR16 *Value,
- IN UINTN ValueSize,
- IN UINT32 Atts
+ IN CONST CHAR16 *Key,
+ IN CONST CHAR16 *Value,
+ IN UINTN ValueSize,
+ IN UINT32 Atts
)
{
- ENV_VAR_LIST *Node;
- CHAR16 *LocalKey;
- CHAR16 *LocalValue;
+ ENV_VAR_LIST *Node;
+ CHAR16 *LocalKey;
+ CHAR16 *LocalValue;
- if (Key == NULL || Value == NULL || ValueSize == 0) {
+ if ((Key == NULL) || (Value == NULL) || (ValueSize == 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -466,14 +492,15 @@ ShellAddEnvVarToList ( //
// Update the variable value if it exists in gShellEnvVarList.
//
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
- ; !IsNull(&gShellEnvVarList.Link, &Node->Link)
- ; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
- ){
- if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
+ ; !IsNull (&gShellEnvVarList.Link, &Node->Link)
+ ; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
+ )
+ {
+ if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
Node->Atts = Atts;
- SHELL_FREE_NON_NULL(Node->Val);
- Node->Val = LocalValue;
+ SHELL_FREE_NON_NULL (Node->Val);
+ Node->Val = LocalValue;
return EFI_SUCCESS;
}
}
@@ -482,21 +509,23 @@ ShellAddEnvVarToList ( // If the environment variable key doesn't exist in list just insert
// a new node.
//
- LocalKey = AllocateCopyPool (StrSize(Key), Key);
+ LocalKey = AllocateCopyPool (StrSize (Key), Key);
if (LocalKey == NULL) {
FreePool (LocalValue);
return EFI_OUT_OF_RESOURCES;
}
- Node = (ENV_VAR_LIST*)AllocateZeroPool (sizeof(ENV_VAR_LIST));
+
+ Node = (ENV_VAR_LIST *)AllocateZeroPool (sizeof (ENV_VAR_LIST));
if (Node == NULL) {
FreePool (LocalKey);
FreePool (LocalValue);
return EFI_OUT_OF_RESOURCES;
}
- Node->Key = LocalKey;
- Node->Val = LocalValue;
+
+ Node->Key = LocalKey;
+ Node->Val = LocalValue;
Node->Atts = Atts;
- InsertTailList(&gShellEnvVarList.Link, &Node->Link);
+ InsertTailList (&gShellEnvVarList.Link, &Node->Link);
return EFI_SUCCESS;
}
@@ -512,24 +541,25 @@ ShellAddEnvVarToList ( **/
EFI_STATUS
ShellRemvoeEnvVarFromList (
- IN CONST CHAR16 *Key
+ IN CONST CHAR16 *Key
)
{
- ENV_VAR_LIST *Node;
+ ENV_VAR_LIST *Node;
if (Key == NULL) {
return EFI_INVALID_PARAMETER;
}
- for ( Node = (ENV_VAR_LIST*)GetFirstNode(&gShellEnvVarList.Link)
- ; !IsNull(&gShellEnvVarList.Link, &Node->Link)
- ; Node = (ENV_VAR_LIST*)GetNextNode(&gShellEnvVarList.Link, &Node->Link)
- ){
- if (Node->Key != NULL && StrCmp(Key, Node->Key) == 0) {
- SHELL_FREE_NON_NULL(Node->Key);
- SHELL_FREE_NON_NULL(Node->Val);
- RemoveEntryList(&Node->Link);
- SHELL_FREE_NON_NULL(Node);
+ for ( Node = (ENV_VAR_LIST *)GetFirstNode (&gShellEnvVarList.Link)
+ ; !IsNull (&gShellEnvVarList.Link, &Node->Link)
+ ; Node = (ENV_VAR_LIST *)GetNextNode (&gShellEnvVarList.Link, &Node->Link)
+ )
+ {
+ if ((Node->Key != NULL) && (StrCmp (Key, Node->Key) == 0)) {
+ SHELL_FREE_NON_NULL (Node->Key);
+ SHELL_FREE_NON_NULL (Node->Val);
+ RemoveEntryList (&Node->Link);
+ SHELL_FREE_NON_NULL (Node);
return EFI_SUCCESS;
}
}
@@ -547,9 +577,9 @@ ShellInitEnvVarList ( VOID
)
{
- EFI_STATUS Status;
+ EFI_STATUS Status;
- InitializeListHead(&gShellEnvVarList.Link);
+ InitializeListHead (&gShellEnvVarList.Link);
Status = GetEnvironmentVariableList (&gShellEnvVarList.Link);
return Status;
@@ -565,8 +595,7 @@ ShellFreeEnvVarList ( )
{
FreeEnvironmentVariableList (&gShellEnvVarList.Link);
- InitializeListHead(&gShellEnvVarList.Link);
+ InitializeListHead (&gShellEnvVarList.Link);
return;
}
-
|