#include <Protocol/DebugSupport.h>\r
#include <Library/DefaultExceptionHandlerLib.h>\r
\r
+//\r
+// The number of elements in a CHAR8 array, including the terminating NUL, that\r
+// is meant to hold the string rendering of the CPSR.\r
+//\r
+#define CPSR_STRING_SIZE 32\r
+\r
typedef struct {\r
UINT32 BIT;\r
CHAR8 Char;\r
It is possible to add extra bits by adding them to CpsrChar array.\r
\r
@param Cpsr ARM CPSR register value\r
- @param ReturnStr 32 byte string that contains string version of CPSR\r
+ @param ReturnStr CPSR_STRING_SIZE byte string that contains string\r
+ version of CPSR\r
\r
**/\r
VOID\r
break;\r
}\r
\r
- AsciiStrCat (Str, ModeStr);\r
- return;\r
+ //\r
+ // See the interface contract in the leading comment block.\r
+ //\r
+ AsciiStrCatS (Str, CPSR_STRING_SIZE - (Str - ReturnStr), ModeStr);\r
}\r
\r
CHAR8 *\r
UINT32 ImageBase;\r
UINT32 PeCoffSizeOfHeader;\r
UINT32 Offset;\r
- CHAR8 CpsrStr[32]; // char per bit. Lower 5-bits are mode that is a 3 char string\r
+ CHAR8 CpsrStr[CPSR_STRING_SIZE]; // char per bit. Lower 5-bits are mode\r
+ // that is a 3 char string\r
CHAR8 Buffer[80];\r
UINT8 *DisAsm;\r
UINT32 ItBlock;\r