pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/gitgitgadget/git/commit/cb77c3a6a7f508776c5bdd874ee650ceb28dc1ba

f82350aeda.css" /> Merge branch 'mf/apply-p-no-atoi' · gitgitgadget/git@cb77c3a · GitHub
Skip to content

Commit cb77c3a

Browse files
committed
Merge branch 'mf/apply-p-no-atoi'
"git apply -p<n>" parses <n> more carefully now. * mf/apply-p-no-atoi: apply.c: fix -p argument parsing
2 parents f230544 + d05d84c commit cb77c3a

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

apply.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4981,7 +4981,8 @@ static int apply_option_parse_p(const struct option *opt,
49814981

49824982
BUG_ON_OPT_NEG(unset);
49834983

4984-
state->p_value = atoi(arg);
4984+
if (strtol_i(arg, 10, &state->p_value) < 0 || state->p_value < 0)
4985+
die(_("option -p expects a non-negative integer, got '%s'"), arg);
49854986
state->p_value_known = 1;
49864987
return 0;
49874988
}

t/t4120-apply-popt.sh

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,47 @@ test_expect_success setup '
2323
rmdir süb
2424
'
2525

26+
test_expect_success 'git apply -p 1 patch' '
27+
cat >patch <<-\EOF &&
28+
From 90ad11d5b2d437e82d4d992f72fb44c2227798b5 Mon Sep 17 00:00:00 2001
29+
From: Mroik <mroik@delayed.space>
30+
Date: Mon, 9 Mar 2026 23:25:00 +0100
31+
Subject: [PATCH] Test
32+
33+
---
34+
t/test/test | 0
35+
1 file changed, 0 insertions(+), 0 deletions(-)
36+
create mode 100644 t/test/test
37+
38+
diff --git a/t/test/test b/t/test/test
39+
new file mode 100644
40+
index 0000000000..e69de29bb2
41+
--
42+
2.53.0.851.ga537e3e6e9
43+
EOF
44+
test_when_finished "rm -rf t" &&
45+
git apply -p 1 patch &&
46+
test_path_is_dir t
47+
'
48+
49+
test_expect_success 'apply fails due to non-num -p' '
50+
test_when_finished "rm -rf t test err" &&
51+
test_must_fail git apply -p malformed patch 2>err &&
52+
test_grep "option -p expects a non-negative integer" err
53+
'
54+
55+
test_expect_success 'apply fails due to trailing non-digit in -p' '
56+
test_when_finished "rm -rf t test err" &&
57+
test_must_fail git apply -p 2q patch 2>err &&
58+
test_grep "option -p expects a non-negative integer" err
59+
'
60+
61+
test_expect_success 'apply fails due to negative number in -p' '
62+
test_when_finished "rm -rf t test err patch" &&
63+
test_must_fail git apply -p -1 patch 2> err &&
64+
test_grep "option -p expects a non-negative integer" err
65+
'
66+
2667
test_expect_success 'apply git diff with -p2' '
2768
cp file1.saved file1 &&
2869
git apply -p2 patch.file

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy