Skip to content

Commit 5c58461

Browse files
Copilotdata-douser
andauthored
Apply review feedback: trap cleanup, comment fix, sed escaping
Agent-Logs-Url: https://github.com/advanced-security/codeql-sap-js/sessions/c323e856-3961-4705-b0bd-20893445994c Co-authored-by: data-douser <70299490+data-douser@users.noreply.github.com>
1 parent e63a46b commit 5c58461

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

javascript/frameworks/ui5/test/qlpack.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ extractor: javascript
44
dependencies:
55
codeql/javascript-all: "2.6.26"
66
# We use this dependency to run the standard Log Injection query to ensure that
7-
# no overlap occurs with the SAP UI5 queries. We therefore allow any version
8-
# greater than or equal to 1.2.0, as major breaking changes are not a concern.
7+
# no overlap occurs with the SAP UI5 queries. We pin this dependency to a
8+
# specific version to ensure consistent and reproducible test results.
99
codeql/javascript-queries: "2.3.6"
1010
advanced-security/javascript-sap-ui5-queries: "2.25.1"
1111
advanced-security/javascript-sap-ui5-models: "2.25.1"

scripts/upgrade-packs.sh

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ pin_upstream_deps() {
127127
if [[ -z "${resolved_version}" ]]; then
128128
local tmp_dir
129129
tmp_dir=$(mktemp -d)
130+
## Ensure the temp dir is removed on early exit (e.g. codeql pack upgrade failure)
131+
trap 'rm -rf "${tmp_dir}"' RETURN
130132
local extractor
131133
extractor=$(grep -m1 "^extractor:" "${qlpack_yml}" | awk '{print $2}' || echo "javascript")
132134
cat > "${tmp_dir}/qlpack.yml" <<TMPEOF
@@ -142,6 +144,7 @@ TMPEOF
142144
| sed 's/.*version:[[:space:]]*//' | head -1)
143145
fi
144146
rm -rf "${tmp_dir}"
147+
trap - RETURN
145148
fi
146149

147150
if [[ -z "${resolved_version}" ]]; then
@@ -160,9 +163,13 @@ TMPEOF
160163
## Replace in file — try both unquoted-key and quoted-key forms
161164
## Form 1: codeql/dep-name: "X.Y.Z"
162165
## Form 2: "codeql/dep-name": "X.Y.Z"
163-
sed -i.bak "s|${dep_name}: ${dep_old_value}|${dep_name}: ${new_value}|" "${qlpack_yml}"
166+
## Escape values for safe use in sed search patterns
167+
local sed_dep_name sed_dep_old_value
168+
sed_dep_name=$(printf '%s\n' "${dep_name}" | sed 's/[][.^$*+?{}()|\/]/\\&/g')
169+
sed_dep_old_value=$(printf '%s\n' "${dep_old_value}" | sed 's/[][.^$*+?{}()|\/]/\\&/g')
170+
sed -i.bak "s|${sed_dep_name}: ${sed_dep_old_value}|${dep_name}: ${new_value}|" "${qlpack_yml}"
164171
rm -f "${qlpack_yml}.bak"
165-
sed -i.bak "s|\"${dep_name}\": ${dep_old_value}|\"${dep_name}\": ${new_value}|" "${qlpack_yml}"
172+
sed -i.bak "s|\"${sed_dep_name}\": ${sed_dep_old_value}|\"${dep_name}\": ${new_value}|" "${qlpack_yml}"
166173
rm -f "${qlpack_yml}.bak"
167174
echo "${dep_name}: ${dep_old_value} -> ${new_value}"
168175
done <<< "${dep_lines}"

0 commit comments

Comments
 (0)