]> git.proxmox.com Git - mirror_edk2.git/commit
MdePkg/BaseLib: AsciiStrToUnicodeStr(S) not handle EASCII properly
authorHao Wu <hao.a.wu@intel.com>
Fri, 19 Oct 2018 02:29:36 +0000 (10:29 +0800)
committerHao Wu <hao.a.wu@intel.com>
Tue, 23 Oct 2018 00:45:00 +0000 (08:45 +0800)
commit0dab57708de64284ac83f0632daba4d9e1cb1135
tree0c25df2fc817cc6b2444df43fbfc025d85e45f38
parent073891a3e74059e996258e32b56b3f0770c6fe55
MdePkg/BaseLib: AsciiStrToUnicodeStr(S) not handle EASCII properly

REF:https://bugzilla.tianocore.org/show_bug.cgi?id=1262

Current implementation of BaseLib APIs:

AsciiStrToUnicodeStr()
AsciiStrToUnicodeStrS()
AsciiStrnToUnicodeStrS()

do not handle EASCII properly.

More specifically, if the value of ASCII character is larger than 0x7F,
then the converted Unicode character will have all '1's in the higher 8
bits.

An example:
  0xC9 => 0xFFC9 (current implementations)
and it should be:
  0xC9 => 0x00C9

This commit will address this issue.

Cc: Bin.Lain <bin_601@mail2000.com.tw>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
MdePkg/Library/BaseLib/SafeString.c
MdePkg/Library/BaseLib/String.c