Skip to content

Commit f4355e2

Browse files
iavclaude
andcommitted
extensions: image-output-abl: quote variables in destructive commands (#9400 P0)
Quote all variable expansions passed to rm, mount, umount, losetup, mkfs, sed -i, cp, truncate, blkid, gzip, cat, e2fsck, resize2fs, and source to prevent word splitting. Replace `[ ! -z ]` with `[[ -n ]]`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8787558 commit f4355e2

1 file changed

Lines changed: 32 additions & 32 deletions

File tree

extensions/image-output-abl.sh

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,73 +5,73 @@ function add_host_dependencies__abl_host_deps() {
55
function post_build_image__900_convert_to_abl_img() {
66
[[ -z $version ]] && exit_with_error "version is not set"
77

8-
if [ ! -z "$UEFI_GRUB_TARGET" ]; then
8+
if [[ -n "$UEFI_GRUB_TARGET" ]]; then
99
display_alert "Ignore" "${EXTENSION}" "info"
1010
return 0
1111
fi
1212

13-
if [ ! -z "$BOOTFS_TYPE" ]; then
13+
if [[ -n "$BOOTFS_TYPE" ]]; then
1414
return 0
1515
fi
1616

1717
display_alert "Converting image $version to rootfs" "${EXTENSION}" "info"
1818
declare -g ROOTFS_IMAGE_FILE="${DESTIMG}/${version}.rootfs.img"
19-
rootfs_start_sector=$(gdisk -l ${DESTIMG}/${version}.img | grep rootfs | awk '{print $2}')
20-
rootfs_end_sector=$(gdisk -l ${DESTIMG}/${version}.img | grep rootfs | awk '{print $3}')
19+
rootfs_start_sector=$(gdisk -l "${DESTIMG}/${version}.img" | grep rootfs | awk '{print $2}')
20+
rootfs_end_sector=$(gdisk -l "${DESTIMG}/${version}.img" | grep rootfs | awk '{print $3}')
2121
old_rootfs_image_mount_dir=${DESTIMG}/rootfs-old
2222
new_rootfs_image_mount_dir=${DESTIMG}/rootfs-new
23-
mkdir -p ${old_rootfs_image_mount_dir} ${new_rootfs_image_mount_dir}
24-
truncate --size=9728M ${ROOTFS_IMAGE_FILE}
25-
mkfs.ext4 -F ${ROOTFS_IMAGE_FILE}
26-
new_rootfs_image_uuid=$(blkid -s UUID -o value ${ROOTFS_IMAGE_FILE})
27-
old_image_loop_device=$(losetup -f -P --show ${DESTIMG}/${version}.img)
28-
old_rootfs_image_uuid=$(blkid -s UUID -o value ${old_image_loop_device}p1)
29-
mount ${old_image_loop_device}p1 ${old_rootfs_image_mount_dir}
30-
mount ${ROOTFS_IMAGE_FILE} ${new_rootfs_image_mount_dir}
31-
cp -rfp ${old_rootfs_image_mount_dir}/* ${new_rootfs_image_mount_dir}/
32-
umount ${old_rootfs_image_mount_dir}
33-
losetup -d ${old_image_loop_device}
34-
rm ${DESTIMG}/${version}.img
23+
mkdir -p "${old_rootfs_image_mount_dir}" "${new_rootfs_image_mount_dir}"
24+
truncate --size=9728M "${ROOTFS_IMAGE_FILE}"
25+
mkfs.ext4 -F "${ROOTFS_IMAGE_FILE}"
26+
new_rootfs_image_uuid=$(blkid -s UUID -o value "${ROOTFS_IMAGE_FILE}")
27+
old_image_loop_device=$(losetup -f -P --show "${DESTIMG}/${version}.img")
28+
old_rootfs_image_uuid=$(blkid -s UUID -o value "${old_image_loop_device}p1")
29+
mount "${old_image_loop_device}p1" "${old_rootfs_image_mount_dir}"
30+
mount "${ROOTFS_IMAGE_FILE}" "${new_rootfs_image_mount_dir}"
31+
cp -rfp "${old_rootfs_image_mount_dir}"/* "${new_rootfs_image_mount_dir}"/
32+
umount "${old_rootfs_image_mount_dir}"
33+
losetup -d "${old_image_loop_device}"
34+
rm "${DESTIMG}/${version}.img"
3535
display_alert "Replace root partition uuid from ${old_rootfs_image_uuid} to ${new_rootfs_image_uuid} in /etc/fstab" "${EXTENSION}" "info"
36-
sed -i "s|${old_rootfs_image_uuid}|${new_rootfs_image_uuid}|g" ${new_rootfs_image_mount_dir}/etc/fstab
37-
source ${new_rootfs_image_mount_dir}/boot/armbianEnv.txt
36+
sed -i "s|${old_rootfs_image_uuid}|${new_rootfs_image_uuid}|g" "${new_rootfs_image_mount_dir}/etc/fstab"
37+
source "${new_rootfs_image_mount_dir}/boot/armbianEnv.txt"
3838
declare -g bootimg_cmdline="${BOOTIMG_CMDLINE_EXTRA} root=UUID=${new_rootfs_image_uuid} slot_suffix=${abl_boot_partition_label#boot} ${extraargs}"
3939

40-
if [ ${#ABL_DTB_LIST[@]} -ne 0 ]; then
40+
if [[ ${#ABL_DTB_LIST[@]} -ne 0 ]]; then
4141
display_alert "Going to create abl kernel boot image" "${EXTENSION}" "info"
42-
gzip -c ${new_rootfs_image_mount_dir}/boot/vmlinuz-*-* > ${DESTIMG}/Image.gz
42+
gzip -c "${new_rootfs_image_mount_dir}"/boot/vmlinuz-*-* > "${DESTIMG}/Image.gz"
4343
for dtb_name in "${ABL_DTB_LIST[@]}"; do
4444
display_alert "Creatng abl kernel boot image with dtb ${dtb_name} and cmdline ${bootimg_cmdline} " "${EXTENSION}" "info"
45-
cat ${DESTIMG}/Image.gz ${new_rootfs_image_mount_dir}/usr/lib/linux-image-*/qcom/${dtb_name}.dtb > ${DESTIMG}/Image.gz-${dtb_name}
45+
cat "${DESTIMG}/Image.gz" "${new_rootfs_image_mount_dir}"/usr/lib/linux-image-*/qcom/"${dtb_name}.dtb" > "${DESTIMG}/Image.gz-${dtb_name}"
4646
/usr/bin/mkbootimg \
47-
--kernel ${DESTIMG}/Image.gz-${dtb_name} \
48-
--ramdisk ${new_rootfs_image_mount_dir}/boot/initrd.img-*-* \
47+
--kernel "${DESTIMG}/Image.gz-${dtb_name}" \
48+
--ramdisk "${new_rootfs_image_mount_dir}"/boot/initrd.img-*-* \
4949
--base 0x0 \
5050
--second_offset 0x00f00000 \
5151
--cmdline "${bootimg_cmdline}" \
5252
--kernel_offset 0x8000 \
5353
--ramdisk_offset 0x1000000 \
5454
--tags_offset 0x100 \
5555
--pagesize 4096 \
56-
-o ${DESTIMG}/${version}.boot_${dtb_name}.img
56+
-o "${DESTIMG}/${version}.boot_${dtb_name}.img"
5757
done
5858
display_alert "Creatng abl kernel boot recovery image with dtb ${ABL_DTB_LIST[0]}" "${EXTENSION}" "info"
59-
cat ${DESTIMG}/Image.gz ${new_rootfs_image_mount_dir}/usr/lib/linux-image-*/qcom/${dtb_name}.dtb > ${DESTIMG}/Image.gz-${dtb_name}
59+
cat "${DESTIMG}/Image.gz" "${new_rootfs_image_mount_dir}"/usr/lib/linux-image-*/qcom/"${dtb_name}.dtb" > "${DESTIMG}/Image.gz-${dtb_name}"
6060
/usr/bin/mkbootimg \
61-
--kernel ${DESTIMG}/Image.gz-${ABL_DTB_LIST[0]} \
62-
--ramdisk ${new_rootfs_image_mount_dir}/boot/initrd.img-*-* \
61+
--kernel "${DESTIMG}/Image.gz-${ABL_DTB_LIST[0]}" \
62+
--ramdisk "${new_rootfs_image_mount_dir}"/boot/initrd.img-*-* \
6363
--base 0x0 \
6464
--second_offset 0x00f00000 \
6565
--kernel_offset 0x8000 \
6666
--ramdisk_offset 0x1000000 \
6767
--tags_offset 0x100 \
6868
--pagesize 4096 \
69-
-o ${DESTIMG}/${version}.boot_recovery.img
69+
-o "${DESTIMG}/${version}.boot_recovery.img"
7070
fi
7171

72-
umount ${new_rootfs_image_mount_dir}
73-
rm -rf ${new_rootfs_image_mount_dir}
74-
e2fsck -p -f ${ROOTFS_IMAGE_FILE}
75-
resize2fs -M ${ROOTFS_IMAGE_FILE}
72+
umount "${new_rootfs_image_mount_dir}"
73+
rm -rf "${new_rootfs_image_mount_dir}"
74+
e2fsck -p -f "${ROOTFS_IMAGE_FILE}"
75+
resize2fs -M "${ROOTFS_IMAGE_FILE}"
7676
return 0
7777
}

0 commit comments

Comments
 (0)