зеркало из https://github.com/microsoft/git.git
fast-import.c: stricter strtoul check, silence compiler warning
Store the return value of strtoul() in order to avoid compiler warnings on Ubuntu 8.10. Also check errno after each call, which is the only way to notice an overflow without making ULONG_MAX an illegal date. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
8f1482536a
Коммит
c55fae43c4
|
@ -1748,9 +1748,12 @@ static int validate_raw_date(const char *src, char *result, int maxlen)
|
|||
{
|
||||
const char *orig_src = src;
|
||||
char *endp, sign;
|
||||
unsigned long date;
|
||||
|
||||
strtoul(src, &endp, 10);
|
||||
if (endp == src || *endp != ' ')
|
||||
errno = 0;
|
||||
|
||||
date = strtoul(src, &endp, 10);
|
||||
if (errno || endp == src || *endp != ' ')
|
||||
return -1;
|
||||
|
||||
src = endp + 1;
|
||||
|
@ -1758,8 +1761,8 @@ static int validate_raw_date(const char *src, char *result, int maxlen)
|
|||
return -1;
|
||||
sign = *src;
|
||||
|
||||
strtoul(src + 1, &endp, 10);
|
||||
if (endp == src || *endp || (endp - orig_src) >= maxlen)
|
||||
date = strtoul(src + 1, &endp, 10);
|
||||
if (errno || endp == src || *endp || (endp - orig_src) >= maxlen)
|
||||
return -1;
|
||||
|
||||
strcpy(result, orig_src);
|
||||
|
|
Загрузка…
Ссылка в новой задаче