aboutsummaryrefslogtreecommitdiff
path: root/apply.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-02-10 10:18:30 -0800
committerJunio C Hamano <gitster@pobox.com>2025-02-10 10:18:30 -0800
commit34736ff48e684dac08bacdad60db41219ce1c520 (patch)
tree24378b85a4c8ccba59a7290096600d003ac3f5c2 /apply.c
parent442b7e0018fac61874a8423270e8fee2c0c7e689 (diff)
parenta206058fdaab6274ae7b9bdca274011efba74e11 (diff)
downloadgit-34736ff48e684dac08bacdad60db41219ce1c520.tar.xz
Merge branch 'pw/apply-ulong-overflow-check'
"git apply" internally uses unsigned long for line numbers and uses strtoul() to parse numbers on the hunk headers. It however forgot to check parse errors. * pw/apply-ulong-overflow-check: apply: detect overflow when parsing hunk header
Diffstat (limited to 'apply.c')
-rw-r--r--apply.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/apply.c b/apply.c
index 4a7b6120ac..b124678b93 100644
--- a/apply.c
+++ b/apply.c
@@ -1423,7 +1423,10 @@ static int parse_num(const char *line, unsigned long *p)
if (!isdigit(*line))
return 0;
+ errno = 0;
*p = strtoul(line, &ptr, 10);
+ if (errno)
+ return 0;
return ptr - line;
}