mirror of https://github.com/acidanthera/audk.git
StdLib/LibC/Uefi/Devices/Console/daConsole.c: Fix bug where unconvertable wide characters would cause the code to hang or generate an exception.
When the WideTtyCvt() function encountered an unconvertable character, it properly replaced it but did not update the byte count, numB, to 1 and instead left it at -1. This fix sets numB to 1 when an unconvertable character is replaced. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: tim.lewis@insidesw.com Reviewed-by: daryl.mcdaniel@intel.com Reviewed-by: erik.c.bjorge@intel.com git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13540 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
532616bbd6
commit
ad07c107f7
|
@ -77,8 +77,9 @@ WideTtyCvt( CHAR16 *dest, const char *buf, ssize_t n, mbstate_t *Cs)
|
|||
if( numB == 0) {
|
||||
break;
|
||||
};
|
||||
if(numB < 0) {
|
||||
if(numB < 0) { // If an unconvertable character, replace it.
|
||||
wc[0] = BLOCKELEMENT_LIGHT_SHADE;
|
||||
numB = 1;
|
||||
}
|
||||
if(wc[0] == L'\n') {
|
||||
*dest++ = L'\r';
|
||||
|
|
Loading…
Reference in New Issue