@@ -86,12 +86,18 @@ jobs:
8686 run : |
8787 set -euo pipefail
8888 TAG="${DISPATCH_TAG:-$RELEASE_TAG}"
89+ case "$TAG" in
90+ ""|*[!A-Za-z0-9._-]*)
91+ echo "::error::release tag is empty or contains invalid characters"
92+ exit 1
93+ ;;
94+ esac
8995 case "$TAG" in
9096 v[0-9]*) ;;
9197 *) echo "::error::'$TAG' does not look like a release tag (vX.Y.Z)"; exit 1 ;;
9298 esac
93- echo "tag=$TAG" >> "$GITHUB_OUTPUT"
94- echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
99+ printf '%s\n' "tag=$TAG" >> "$GITHUB_OUTPUT"
100+ printf '%s\n' "version=${TAG#v}" >> "$GITHUB_OUTPUT"
95101 # ghcr requires a lowercase repository path, and unlike metadata-action,
96102 # buildx's `--output name=` does no lowercasing — a mixed-case owner
97103 # makes the digest push fail with "invalid reference format".
@@ -183,12 +189,18 @@ jobs:
183189 run : |
184190 set -euo pipefail
185191 TAG="${DISPATCH_TAG:-$RELEASE_TAG}"
192+ case "$TAG" in
193+ ""|*[!A-Za-z0-9._-]*)
194+ echo "::error::release tag is empty or contains invalid characters"
195+ exit 1
196+ ;;
197+ esac
186198 case "$TAG" in
187199 v[0-9]*) ;;
188200 *) echo "::error::'$TAG' does not look like a release tag (vX.Y.Z)"; exit 1 ;;
189201 esac
190- echo "tag=$TAG" >> "$GITHUB_OUTPUT"
191- echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
202+ printf '%s\n' "tag=$TAG" >> "$GITHUB_OUTPUT"
203+ printf '%s\n' "version=${TAG#v}" >> "$GITHUB_OUTPUT"
192204
193205 - name : Download digests
194206 uses : actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
@@ -412,12 +424,18 @@ jobs:
412424 run : |
413425 set -euo pipefail
414426 TAG="${DISPATCH_TAG:-$RELEASE_TAG}"
427+ case "$TAG" in
428+ ""|*[!A-Za-z0-9._-]*)
429+ echo "::error::release tag is empty or contains invalid characters"
430+ exit 1
431+ ;;
432+ esac
415433 case "$TAG" in
416434 v[0-9]*) ;;
417435 *) echo "::error::'$TAG' does not look like a release tag (vX.Y.Z)"; exit 1 ;;
418436 esac
419- echo "tag=$TAG" >> "$GITHUB_OUTPUT"
420- echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
437+ printf '%s\n' "tag=$TAG" >> "$GITHUB_OUTPUT"
438+ printf '%s\n' "version=${TAG#v}" >> "$GITHUB_OUTPUT"
421439
422440 - name : Checkout release tag
423441 uses : actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
0 commit comments