summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRené Scharfe <rene.scharfe@lsrfire.ath.cx>2008-12-21 01:28:48 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-12-21 09:48:26 (GMT)
commitc55fae43c4e10e2779e4fb7d70d6f6e4a7645a63 (patch)
treea2bb72cf0cd0d027a050276dcf2b77aee1986b4b
parent8f1482536ad680fcd738158e76e254a534f2e690 (diff)
downloadgit-c55fae43c4e10e2779e4fb7d70d6f6e4a7645a63.zip
git-c55fae43c4e10e2779e4fb7d70d6f6e4a7645a63.tar.gz
git-c55fae43c4e10e2779e4fb7d70d6f6e4a7645a63.tar.bz2
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>
-rw-r--r--fast-import.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fast-import.c b/fast-import.c
index 171d178..a6bce66 100644
--- a/fast-import.c
+++ b/fast-import.c
@@ -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);