diff --git a/docs/examples/synctime.c b/docs/examples/synctime.c index 02cbefa0e5..6d59826934 100644 --- a/docs/examples/synctime.c +++ b/docs/examples/synctime.c @@ -134,9 +134,12 @@ static size_t SyncTime_CURL_WriteHeader(void *ptr, size_t size, size_t nmemb, 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);