|
@@ -86,6 +86,33 @@ runs:
|
|
|
sed -i 's/\s*vm_flags_clear(new_vma, VM_PAD_MASK);/ new_vma->vm_flags \&= ~VM_PAD_MASK;/' mm/mmap.c
|
|
sed -i 's/\s*vm_flags_clear(new_vma, VM_PAD_MASK);/ new_vma->vm_flags \&= ~VM_PAD_MASK;/' mm/mmap.c
|
|
|
echo "MMAP_VM_FLAGS_FIX=true" >> "$GITHUB_ENV"
|
|
echo "MMAP_VM_FLAGS_FIX=true" >> "$GITHUB_ENV"
|
|
|
|
|
|
|
|
|
|
+ - name: 'Fix selinux_hide pointer-bool-conversion on 6.6+'
|
|
|
|
|
+ shell: bash
|
|
|
|
|
+ working-directory: ${{ github.workspace }}/kernel/common
|
|
|
|
|
+ run: |
|
|
|
|
|
+ set -euo pipefail
|
|
|
|
|
+ KVER="${{ inputs.kernel_version }}"
|
|
|
|
|
+ # version >= 6.6 ?
|
|
|
|
|
+ if [ "$(printf '%s\n' "6.6" "$KVER" | sort -V | head -n1)" = "6.6" ]; then
|
|
|
|
|
+ echo "[INFO] KVER $KVER >= 6.6, checking selinux_hide.c"
|
|
|
|
|
+ for f in $(find . -name selinux_hide.c 2>/dev/null); do
|
|
|
|
|
+ if grep -q "security_dump_masked_av_fn" "$f" && grep -q "if (security_dump_masked_av_fn)" "$f"; then
|
|
|
|
|
+ echo "[INFO] Patching $f (security_dump_masked_av_fn)"
|
|
|
|
|
+ sed -i 's/if (security_dump_masked_av_fn)/if (security_dump_masked_av_fn != NULL)/g' "$f"
|
|
|
|
|
+ sed -i 's/if (context_struct_compute_av_fn)/if (context_struct_compute_av_fn != NULL)/g' "$f"
|
|
|
|
|
+ echo "SELINUX_HIDE_FIX=patched:$f" >> "$GITHUB_ENV"
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "[INFO] $f already patched or no pattern"
|
|
|
|
|
+ fi
|
|
|
|
|
+ done
|
|
|
|
|
+ if [ -z "${SELINUX_HIDE_FIX:-}" ]; then
|
|
|
|
|
+ echo "SELINUX_HIDE_FIX=not_needed" >> "$GITHUB_ENV"
|
|
|
|
|
+ fi
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "[SKIP] KVER $KVER < 6.6, no selinux_hide fix"
|
|
|
|
|
+ echo "SELINUX_HIDE_FIX=skipped" >> "$GITHUB_ENV"
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
- name: 'Final Kernel Fixes Summary'
|
|
- name: 'Final Kernel Fixes Summary'
|
|
|
shell: bash
|
|
shell: bash
|
|
|
run: |
|
|
run: |
|
|
@@ -129,3 +156,13 @@ runs:
|
|
|
else
|
|
else
|
|
|
echo "- mm/mmap.c VM_PAD_MASK fix: not applicable" >> "$SUMMARY_FILE"
|
|
echo "- mm/mmap.c VM_PAD_MASK fix: not applicable" >> "$SUMMARY_FILE"
|
|
|
fi
|
|
fi
|
|
|
|
|
+
|
|
|
|
|
+ if [[ "${SELINUX_HIDE_FIX:-not_applicable}" == patched:* ]]; then
|
|
|
|
|
+ echo "- selinux_hide.c 6.6+ pointer-bool fix: ${SELINUX_HIDE_FIX#patched:}" >> "$SUMMARY_FILE"
|
|
|
|
|
+ elif [ "${SELINUX_HIDE_FIX:-not_applicable}" = "not_needed" ]; then
|
|
|
|
|
+ echo "- selinux_hide.c 6.6+ pointer-bool fix: already patched / not needed" >> "$SUMMARY_FILE"
|
|
|
|
|
+ elif [ "${SELINUX_HIDE_FIX:-not_applicable}" = "skipped" ]; then
|
|
|
|
|
+ echo "- selinux_hide.c 6.6+ pointer-bool fix: skipped (<6.6)" >> "$SUMMARY_FILE"
|
|
|
|
|
+ else
|
|
|
|
|
+ echo "- selinux_hide.c 6.6+ pointer-bool fix: not applicable" >> "$SUMMARY_FILE"
|
|
|
|
|
+ fi
|