Skip to content

Commit 469fcac

Browse files
committed
Merge tag 'v2.39.3' into git-2.39.3
Git 2.39.3 Signed-off-by: Johannes Schindelin <[email protected]>
2 parents a82fa99 + 9bbde12 commit 469fcac

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+700
-238
lines changed

.github/workflows/check-whitespace.yml

+52-11
Original file line numberDiff line numberDiff line change
@@ -9,42 +9,83 @@ on:
99
pull_request:
1010
types: [opened, synchronize]
1111

12+
# Avoid unnecessary builds. Unlike the main CI jobs, these are not
13+
# ci-configurable (but could be).
14+
concurrency:
15+
group: ${{ github.workflow }}-${{ github.ref }}
16+
cancel-in-progress: true
17+
1218
jobs:
1319
check-whitespace:
1420
runs-on: ubuntu-latest
1521
steps:
16-
- uses: actions/checkout@v2
22+
- uses: actions/checkout@v3
1723
with:
1824
fetch-depth: 0
1925

2026
- name: git log --check
2127
id: check_out
2228
run: |
23-
log=
29+
baseSha=${{github.event.pull_request.base.sha}}
30+
problems=()
2431
commit=
25-
while read dash etc
32+
commitText=
33+
commitTextmd=
34+
goodparent=
35+
while read dash sha etc
2636
do
2737
case "${dash}" in
2838
"---")
29-
commit="${etc}"
39+
if test -z "${commit}"
40+
then
41+
goodparent=${sha}
42+
fi
43+
commit="${sha}"
44+
commitText="${sha} ${etc}"
45+
commitTextmd="[${sha}](https://github.com/${{ github.repository }}/commit/${sha}) ${etc}"
3046
;;
3147
"")
3248
;;
3349
*)
3450
if test -n "${commit}"
3551
then
36-
log="${log}\n${commit}"
52+
problems+=("1) --- ${commitTextmd}")
3753
echo ""
38-
echo "--- ${commit}"
54+
echo "--- ${commitText}"
55+
commit=
3956
fi
40-
commit=
41-
log="${log}\n${dash} ${etc}"
42-
echo "${dash} ${etc}"
57+
case "${dash}" in
58+
*:[1-9]*:) # contains file and line number information
59+
dashend=${dash#*:}
60+
problems+=("[${dash}](https://github.com/${{ github.repository }}/blob/${{github.event.pull_request.head.ref}}/${dash%%:*}#L${dashend%:}) ${sha} ${etc}")
61+
;;
62+
*)
63+
problems+=("\`${dash} ${sha} ${etc}\`")
64+
;;
65+
esac
66+
echo "${dash} ${sha} ${etc}"
4367
;;
4468
esac
45-
done <<< $(git log --check --pretty=format:"---% h% s" ${{github.event.pull_request.base.sha}}..)
69+
done <<< $(git log --check --pretty=format:"---% h% s" ${baseSha}..)
4670
47-
if test -n "${log}"
71+
if test ${#problems[*]} -gt 0
4872
then
73+
if test -z "${commit}"
74+
then
75+
goodparent=${baseSha: 0:7}
76+
fi
77+
echo "🛑 Please review the Summary output for further information."
78+
echo "### :x: A whitespace issue was found in one or more of the commits." >$GITHUB_STEP_SUMMARY
79+
echo "" >>$GITHUB_STEP_SUMMARY
80+
echo "Run these commands to correct the problem:" >>$GITHUB_STEP_SUMMARY
81+
echo "1. \`git rebase --whitespace=fix ${goodparent}\`" >>$GITHUB_STEP_SUMMARY
82+
echo "1. \`git push --force\`" >>$GITHUB_STEP_SUMMARY
83+
echo " " >>$GITHUB_STEP_SUMMARY
84+
echo "Errors:" >>$GITHUB_STEP_SUMMARY
85+
for i in "${problems[@]}"
86+
do
87+
echo "${i}" >>$GITHUB_STEP_SUMMARY
88+
done
89+
4990
exit 2
5091
fi

.github/workflows/l10n.yml

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ name: git-l10n
22

33
on: [push, pull_request_target]
44

5+
# Avoid unnecessary builds. Unlike the main CI jobs, these are not
6+
# ci-configurable (but could be).
7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
511
jobs:
612
git-po-helper:
713
if: >-

.github/workflows/main.yml

+39-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
outputs:
1313
enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}
14+
skip_concurrent: ${{ steps.check-ref.outputs.skip_concurrent }}
1415
steps:
1516
- name: try to clone ci-config branch
1617
run: |
@@ -34,7 +35,15 @@ jobs:
3435
then
3536
enabled=no
3637
fi
38+
39+
skip_concurrent=yes
40+
if test -x config-repo/ci/config/skip-concurrent &&
41+
! config-repo/ci/config/skip-concurrent '${{ github.ref }}'
42+
then
43+
skip_concurrent=no
44+
fi
3745
echo "enabled=$enabled" >>$GITHUB_OUTPUT
46+
echo "skip_concurrent=$skip_concurrent" >>$GITHUB_OUTPUT
3847
- name: skip if the commit or tree was already tested
3948
id: skip-if-redundant
4049
uses: actions/github-script@v6
@@ -82,6 +91,9 @@ jobs:
8291
needs: ci-config
8392
if: needs.ci-config.outputs.enabled == 'yes'
8493
runs-on: windows-latest
94+
concurrency:
95+
group: windows-build-${{ github.ref }}
96+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
8597
steps:
8698
- uses: actions/checkout@v3
8799
- uses: git-for-windows/setup-git-for-windows-sdk@v1
@@ -101,11 +113,14 @@ jobs:
101113
windows-test:
102114
name: win test
103115
runs-on: windows-latest
104-
needs: [windows-build]
116+
needs: [ci-config, windows-build]
105117
strategy:
106118
fail-fast: false
107119
matrix:
108120
nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
121+
concurrency:
122+
group: windows-test-${{ matrix.nr }}-${{ github.ref }}
123+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
109124
steps:
110125
- name: download tracked files and build artifacts
111126
uses: actions/download-artifact@v3
@@ -132,14 +147,17 @@ jobs:
132147
vs-build:
133148
name: win+VS build
134149
needs: ci-config
135-
if: needs.ci-config.outputs.enabled == 'yes'
150+
if: github.event.repository.owner.login == 'git-for-windows' && needs.ci-config.outputs.enabled == 'yes'
136151
env:
137152
NO_PERL: 1
138153
GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
139154
runs-on: windows-latest
140155
strategy:
141156
matrix:
142157
arch: [x64, arm64]
158+
concurrency:
159+
group: vs-build-${{ github.ref }}
160+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
143161
steps:
144162
- uses: actions/checkout@v3
145163
- uses: git-for-windows/setup-git-for-windows-sdk@v1
@@ -183,11 +201,14 @@ jobs:
183201
vs-test:
184202
name: win+VS test
185203
runs-on: windows-latest
186-
needs: vs-build
204+
needs: [ci-config, vs-build]
187205
strategy:
188206
fail-fast: false
189207
matrix:
190208
nr: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
209+
concurrency:
210+
group: vs-test-${{ matrix.nr }}-${{ github.ref }}
211+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
191212
steps:
192213
- uses: git-for-windows/setup-git-for-windows-sdk@v1
193214
- name: download tracked files and build artifacts
@@ -217,6 +238,9 @@ jobs:
217238
name: ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
218239
needs: ci-config
219240
if: needs.ci-config.outputs.enabled == 'yes'
241+
concurrency:
242+
group: ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
243+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
220244
strategy:
221245
fail-fast: false
222246
matrix:
@@ -276,6 +300,9 @@ jobs:
276300
name: ${{matrix.vector.jobname}} (${{matrix.vector.image}})
277301
needs: ci-config
278302
if: needs.ci-config.outputs.enabled == 'yes'
303+
concurrency:
304+
group: dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
305+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
279306
strategy:
280307
fail-fast: false
281308
matrix:
@@ -317,6 +344,9 @@ jobs:
317344
env:
318345
jobname: StaticAnalysis
319346
runs-on: ubuntu-22.04
347+
concurrency:
348+
group: static-analysis-${{ github.ref }}
349+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
320350
steps:
321351
- uses: actions/checkout@v3
322352
- run: ci/install-dependencies.sh
@@ -328,6 +358,9 @@ jobs:
328358
env:
329359
jobname: sparse
330360
runs-on: ubuntu-20.04
361+
concurrency:
362+
group: sparse-${{ github.ref }}
363+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
331364
steps:
332365
- name: Download a current `sparse` package
333366
# Ubuntu's `sparse` version is too old for us
@@ -346,6 +379,9 @@ jobs:
346379
name: documentation
347380
needs: ci-config
348381
if: needs.ci-config.outputs.enabled == 'yes'
382+
concurrency:
383+
group: documentation-${{ github.ref }}
384+
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
349385
env:
350386
jobname: Documentation
351387
runs-on: ubuntu-latest

Documentation/RelNotes/2.30.9.txt

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
Git v2.30.9 Release Notes
2+
=========================
3+
4+
This release addresses the security issues CVE-2023-25652,
5+
CVE-2023-25815, and CVE-2023-29007.
6+
7+
8+
Fixes since v2.30.8
9+
-------------------
10+
11+
* CVE-2023-25652:
12+
13+
By feeding specially crafted input to `git apply --reject`, a
14+
path outside the working tree can be overwritten with partially
15+
controlled contents (corresponding to the rejected hunk(s) from
16+
the given patch).
17+
18+
* CVE-2023-25815:
19+
20+
When Git is compiled with runtime prefix support and runs without
21+
translated messages, it still used the gettext machinery to
22+
display messages, which subsequently potentially looked for
23+
translated messages in unexpected places. This allowed for
24+
malicious placement of crafted messages.
25+
26+
* CVE-2023-29007:
27+
28+
When renaming or deleting a section from a configuration file,
29+
certain malicious configuration values may be misinterpreted as
30+
the beginning of a new configuration section, leading to arbitrary
31+
configuration injection.
32+
33+
Credit for finding CVE-2023-25652 goes to Ry0taK, and the fix was
34+
developed by Taylor Blau, Junio C Hamano and Johannes Schindelin,
35+
with the help of Linus Torvalds.
36+
37+
Credit for finding CVE-2023-25815 goes to Maxime Escourbiac and
38+
Yassine BENGANA of Michelin, and the fix was developed by Johannes
39+
Schindelin.
40+
41+
Credit for finding CVE-2023-29007 goes to André Baptista and Vítor Pinho
42+
of Ethiack, and the fix was developed by Taylor Blau, and Johannes
43+
Schindelin, with help from Jeff King, and Patrick Steinhardt.

Documentation/RelNotes/2.31.8.txt

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Git v2.31.8 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9 to address the
5+
security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007;
6+
see the release notes for that version for details.

Documentation/RelNotes/2.32.7.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.32.7 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9 and v2.31.8 to
5+
address the security issues CVE-2023-25652, CVE-2023-25815, and
6+
CVE-2023-29007; see the release notes for these versions for
7+
details.

Documentation/RelNotes/2.33.8.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.33.8 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9, v2.31.8 and
5+
v2.32.7 to address the security issues CVE-2023-25652,
6+
CVE-2023-25815, and CVE-2023-29007; see the release notes for these
7+
versions for details.

Documentation/RelNotes/2.34.8.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.34.8 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9, v2.31.8,
5+
v2.32.7 and v2.33.8 to address the security issues CVE-2023-25652,
6+
CVE-2023-25815, and CVE-2023-29007; see the release notes for these
7+
versions for details.

Documentation/RelNotes/2.35.8.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.35.8 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9, v2.31.8,
5+
v2.32.7, v2.33.8 and v2.34.8 to address the security issues
6+
CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007; see the release
7+
notes for these versions for details.

Documentation/RelNotes/2.36.6.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.36.6 Release Notes
2+
=========================
3+
4+
This release merges the fixes that appear in v2.30.9, v2.31.8,
5+
v2.32.7, v2.33.8, v2.34.8 and v2.35.8 to address the security issues
6+
CVE-2023-25652, CVS-2023-25815, and CVE-2023-29007; see the release
7+
notes for these versions for details.

Documentation/RelNotes/2.37.7.txt

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Git v2.37.7 Release Notes
2+
=========================
3+
4+
This release merges up the fix that appears in v2.30.9, v2.31.8,
5+
v2.32.7, v2.33.8, v2.34.8, v2.35.8 and v2.36.6 to address the
6+
security issues CVE-2023-25652, CVE-2023-25815, and CVE-2023-29007;
7+
see the release notes for these versions for details.

Documentation/RelNotes/2.38.5.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Git v2.38.5 Release Notes
2+
=========================
3+
4+
This release merges up the fix that appears in v2.30.9, v2.31.8,
5+
v2.32.7, v2.33.8, v2.34.8, v2.35.8, v2.36.6 and v2.37.7 to address
6+
the security issues CVE-2023-25652, CVE-2023-25815, and
7+
CVE-2023-29007; see the release notes for these versions for
8+
details.

0 commit comments

Comments
 (0)