Avoid field-overflowing memcpy() #131
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: [pull_request] | |
jobs: | |
commontasks: | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.set-matrix.outputs.matrix }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Avoid 0x0BDA | |
#Find devices that not use 0x0BDA instead of const USB_VENDOR_ID_REALTEK | |
run: grep -c -i "0x0BDA" os_dep/linux/usb_intf.c | grep -w 1 | |
- name: Find duplicates | |
#Find devices that not use 0x0BDA instead of const USB_VENDOR_ID_REALTEK | |
run: grep -i "{USB_DEVICE(" os_dep/linux/usb_intf.c | cut -d ')' -f1 | sort | uniq -cd | wc -c | grep -w 0 | |
- name: Get kernel matrix | |
id: set-matrix | |
run: | | |
JSON=$(curl -s https://www.kernel.org/releases.json) | |
VERSIONSARRAY=$(echo $JSON | jq -c '[.releases[] | {version: .version, moniker: .moniker} | select(.moniker != "linux-next") | .version]') | |
echo ::set-output name=matrix::${VERSIONSARRAY} | |
build: | |
needs: commontasks | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
kernel_version: ${{fromJson(needs.commontasks.outputs.matrix)}} | |
gcc_version: [9, 10, 12] | |
# kernel_version: [6.1-rc1] | |
steps: | |
- name: Check Versions | |
id: check_version | |
shell: bash {0} | |
run: | | |
echo ::set-output name=skip_build::False | |
dpkg --compare-versions "${{matrix.kernel_version}}" "ge" "5.15" | |
if [ $? -eq "0" ] && [ ${{matrix.gcc_version}} -lt 12 ]; | |
then | |
echo "GCC version not compatible" | |
echo ::set-output name=skip_build::True | |
fi | |
- name: Download kernel packages | |
if: steps.check_version.outputs.skip_build == 'False' | |
run: | | |
KERNEL_URL=https://kernel.ubuntu.com/~kernel-ppa/mainline/ | |
KERNEL_URL_DETAILS=$(wget --quiet -O - ${KERNEL_URL}v${{matrix.kernel_version}}/ | grep -A8 "Build for amd64\|Test amd64") | |
ALL_DEB=$(echo "$KERNEL_URL_DETAILS" | grep -m1 'all.deb' | cut -d '"' -f 2) | |
AMD64_DEB=$(echo "$KERNEL_URL_DETAILS" | grep -m1 "amd64.deb" | cut -d '"' -f 2) | |
[ -z "$ALL_DEB" ] && exit 1 | |
[ -z "$AMD64_DEB" ] && exit 2 | |
wget -nv ${KERNEL_URL}v${{matrix.kernel_version}}/$AMD64_DEB | |
wget -nv ${KERNEL_URL}v${{matrix.kernel_version}}/$ALL_DEB | |
echo "KVER=$(echo $ALL_DEB | cut -d '_' -f 2 | rev | cut -c14- | rev)-generic" >> $GITHUB_ENV | |
- name: Set up GCC | |
if: steps.check_version.outputs.skip_build == 'False' | |
uses: egor-tensin/setup-gcc@v1 | |
with: | |
version: ${{matrix.gcc_version }} | |
- name: install deb packages | |
if: steps.check_version.outputs.skip_build == 'False' | |
run: sudo dpkg --force-all -i *.deb | |
- uses: actions/checkout@v2 | |
if: steps.check_version.outputs.skip_build == 'False' | |
- name: build kernel ${{ matrix.kernel_version }} - GCC ${{ matrix.gcc_version }} | |
if: steps.check_version.outputs.skip_build == 'False' | |
run: make KVER=$KVER CC=cc |