char *field = ptr;
*TmpStr1 = 0;
*TmpStr2 = 0;
- if(nmemb && (field[nmemb] == '\n')) {
- field[nmemb] = 0; /* null-terminated */
- RetVal = sscanf(field, "Date: %25s %hu %25s %hu %hu:%hu:%hu",
+ if(nmemb && (field[nmemb - 1] == '\n')) {
+ char header[100];
+ size_t len = nmemb < sizeof(header) ? nmemb : sizeof(header) - 1;
+ memcpy(header, field, len);
+ header[len] = 0; /* null-terminate local copy */
+ RetVal = sscanf(header, "Date: %25s %hu %25s %hu %hu:%hu:%hu",
TmpStr1, &SYSTime.wDay, TmpStr2, &SYSTime.wYear,
&SYSTime.wHour, &SYSTime.wMinute,
&SYSTime.wSecond);