STATIC ANDROID_FASTBOOT_STATE mState = ExpectCmdState;\r
\r
// When in ExpectDataState, the number of bytes of data to expect:\r
-STATIC UINT32 mNumDataBytes;\r
+STATIC UINT64 mNumDataBytes;\r
// .. and the number of bytes so far received this data phase\r
-STATIC UINT32 mBytesReceivedSoFar;\r
+STATIC UINT64 mBytesReceivedSoFar;\r
// .. and the buffer to save data into\r
STATIC UINT8 *mDataBuffer = NULL;\r
\r
IN CHAR8 *NumBytesString\r
)\r
{\r
- CHAR8 Response[12] = "DATA";\r
+ CHAR8 Response[13];\r
CHAR16 OutputString[FASTBOOT_STRING_MAX_LENGTH];\r
\r
// Argument is 8-character ASCII string hex representation of number of bytes\r
if (mDataBuffer == NULL) {\r
SEND_LITERAL ("FAILNot enough memory");\r
} else {\r
- AsciiStrnCpy (Response + 4, NumBytesString, 8);\r
- mTransport->Send (sizeof(Response), Response, &mFatalSendErrorEvent);\r
+ ZeroMem (Response, sizeof Response);\r
+ AsciiSPrint (Response, sizeof Response, "DATA%x",\r
+ (UINT32)mNumDataBytes);\r
+ mTransport->Send (sizeof Response - 1, Response, &mFatalSendErrorEvent);\r
\r
mState = ExpectDataState;\r
mBytesReceivedSoFar = 0;\r
}\r
\r
// Commands aren't null-terminated. Let's get a null-terminated version.\r
- AsciiStrnCpy (Command, Data, Size);\r
- Command[Size] = '\0';\r
+ AsciiStrnCpyS (Command, sizeof Command, Data, Size);\r
\r
// Parse command\r
if (MATCH_CMD_LITERAL ("getvar", Command)) {\r