X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkCompatibilityPkg%2FFoundation%2FLibrary%2FDxe%2FUefiEfiIfrSupportLib%2FUefiIfrString.c;h=ece78bfb441624a6b0bc83adb7d1bbb384975767;hp=0a5739965aa84009a0ea7207f2c801b57ac93742;hb=3e99020dbf0a159e34b84e7ae9125f2e368d5390;hpb=68bb5ce77e51cf35791e46f2202e36da97e5e6be diff --git a/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrString.c b/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrString.c index 0a5739965a..ece78bfb44 100644 --- a/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrString.c +++ b/EdkCompatibilityPkg/Foundation/Library/Dxe/UefiEfiIfrSupportLib/UefiIfrString.c @@ -555,20 +555,37 @@ IfrLibNewString ( if (Languages == NULL) { return EFI_NOT_FOUND; } + + if (StringId == NULL) { + return EFI_INVALID_PARAMETER; + } + *StringId = 0; LangStrings = Languages; while (*LangStrings != 0) { GetNextLanguage (&LangStrings, Lang); - Status = gIfrLibHiiString->NewString ( - gIfrLibHiiString, - PackageList, - StringId, - Lang, - NULL, - String, - NULL - ); + if (*StringId == 0) { + Status = gIfrLibHiiString->NewString ( + gIfrLibHiiString, + PackageList, + StringId, + Lang, + NULL, + String, + NULL + ); + } else { + Status = gIfrLibHiiString->SetString ( + gIfrLibHiiString, + PackageList, + *StringId, + Lang, + String, + NULL + ); + } + if (EFI_ERROR (Status)) { break; }