From 30d636c8d97057a2b5b3d696757c868710a94d2c Mon Sep 17 00:00:00 2001 From: li-elvin Date: Tue, 11 Oct 2011 03:45:24 +0000 Subject: [PATCH] AsciiSPrint returns The number of ASCII characters in the produced output buffer not including the Null-terminator, but SerialStatusCodeWorker has bug which overwrites the last character, which causes there is a missing character in serial log output. The fix is to resolve this issue. Signed-off-by: li-elvin Reviewed-by: lgao4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12526 6f19259b-4bc3-4df7-8a09-765794883524 --- .../StatusCodeHandler/Pei/SerialStatusCodeWorker.c | 8 ++++---- .../StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c | 8 ++++---- .../StatusCodeHandler/Smm/SerialStatusCodeWorker.c | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c index e7bbcf4871..ba6befa572 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/Pei/SerialStatusCodeWorker.c @@ -1,7 +1,7 @@ /** @file Serial I/O status code reporting worker. - Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -99,7 +99,7 @@ SerialStatusCodeReportWorker ( if (CallerId != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %g", CallerId @@ -108,7 +108,7 @@ SerialStatusCodeReportWorker ( if (Data != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %x", Data @@ -116,7 +116,7 @@ SerialStatusCodeReportWorker ( } CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), "\n\r" ); diff --git a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c index 4a5d65d25e..19b67b00b7 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/RuntimeDxe/SerialStatusCodeWorker.c @@ -1,7 +1,7 @@ /** @file Serial I/O status code reporting worker. - Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -94,7 +94,7 @@ SerialStatusCodeReportWorker ( if (CallerId != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %g", CallerId @@ -103,7 +103,7 @@ SerialStatusCodeReportWorker ( if (Data != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %x", Data @@ -111,7 +111,7 @@ SerialStatusCodeReportWorker ( } CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), "\n\r" ); diff --git a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c index 868ffad7a3..42f05f2dca 100644 --- a/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c +++ b/MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c @@ -1,7 +1,7 @@ /** @file Serial I/O status code reporting worker. - Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.
+ Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -94,7 +94,7 @@ SerialStatusCodeReportWorker ( if (CallerId != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %g", CallerId @@ -103,7 +103,7 @@ SerialStatusCodeReportWorker ( if (Data != NULL) { CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), " %x", Data @@ -111,7 +111,7 @@ SerialStatusCodeReportWorker ( } CharCount += AsciiSPrint ( - &Buffer[CharCount - 1], + &Buffer[CharCount], (sizeof (Buffer) - (sizeof (Buffer[0]) * CharCount)), "\n\r" ); -- 2.39.5