[PW_SID:1094909] Bluetooth: btintel: Fix insufficient skb length check in btintel_print_fseq_info()#191
[PW_SID:1094909] Bluetooth: btintel: Fix insufficient skb length check in btintel_print_fseq_info()#191BluezTestBot wants to merge 6 commits into
Conversation
This patch adds workflow files for ci: [sync.yml] - The workflow file for scheduled work - Sync the repo with upstream repo and rebase the workflow branch - Review the patches in the patchwork and creates the PR if needed [ci.yml] - The workflow file for CI tasks - Run CI tests when PR is created Signed-off-by: Tedd Ho-Jeong An <tedd.an@intel.com>
This replaces the bzcafe action with bluez/action-ci so we can maintain everything in the github bluez organization Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This attempts to sync every 5 minutes instead of 30. Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
bluez/action-ci uses master as default branch for workflow which is incorrect for kernel Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
The CI action now creates individual GitHub Check Runs per test, which requires 'checks: write' permission on the GITHUB_TOKEN. Also make the pull_request trigger types explicit to include 'reopened', allowing CI to be retriggered by closing and reopening a PR.
…t_fseq_info() The length check at the top of btintel_print_fseq_info() verifies that the skb has at least 66 bytes (sizeof(u32) * 16 + 2), but the function actually consumes 74 bytes: 2 calls to skb_pull_data(skb, 1) = 2 bytes 18 calls to skb_pull_data(skb, 4) = 72 bytes When the firmware returns a packet of exactly 66 bytes, the last two skb_pull_data(skb, 4) calls return NULL, which is then passed directly to get_unaligned_le32(), resulting in a NULL pointer dereference. Fix the length check to account for all 74 bytes actually consumed: sizeof(u32) * 16 + 2 -> sizeof(u32) * 18 + 2 Fixes: a7ba218 ("Bluetooth: btintel: Print Firmware Sequencer information") Signed-off-by: Quan Sun <2022090917019@std.uestc.edu.cn>
|
CheckPatch |
|
GitLint |
|
SubjectPrefix |
|
BuildKernel |
|
CheckAllWarning |
|
CheckSparse |
|
BuildKernel32 |
|
TestRunnerSetup |
|
IncrementalBuild |
e6b705e to
133f77d
Compare
The length check at the top of btintel_print_fseq_info() verifies
that the skb has at least 66 bytes (sizeof(u32) * 16 + 2), but the
function actually consumes 74 bytes:
2 calls to skb_pull_data(skb, 1) = 2 bytes
18 calls to skb_pull_data(skb, 4) = 72 bytes
When the firmware returns a packet of exactly 66 bytes, the last two
skb_pull_data(skb, 4) calls return NULL, which is then passed directly
to get_unaligned_le32(), resulting in a NULL pointer dereference.
Fix the length check to account for all 74 bytes actually consumed:
sizeof(u32) * 16 + 2 -> sizeof(u32) * 18 + 2
Fixes: a7ba218 ("Bluetooth: btintel: Print Firmware Sequencer information")
Signed-off-by: Quan Sun 2022090917019@std.uestc.edu.cn
drivers/bluetooth/btintel.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)