Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix incorrect address check in CalculateChecksum (close #6) #7

Merged
merged 1 commit into from
Dec 23, 2024

Conversation

bessman
Copy link
Collaborator

@bessman bessman commented Dec 23, 2024

Summary by Sourcery

Bug Fixes:

  • Correct the address range check in the CalculateChecksum function to prevent potential memory errors.

Copy link

sourcery-ai bot commented Dec 23, 2024

Reviewer's Guide by Sourcery

This pull request fixes an incorrect address range check in the CalculateChecksum function. The issue was caused by using the full data length instead of half the data length when calculating the end address of the range. This change ensures that only the necessary memory range is checked, preventing potential issues.

State diagram for address range validation

stateDiagram-v2
    [*] --> CheckRange
    CheckRange --> ValidRange: address + dataLength/2
    CheckRange --> InvalidRange: address + dataLength/2
    ValidRange --> ProcessChecksum
    InvalidRange --> ErrorHandling
    ProcessChecksum --> [*]
    ErrorHandling --> [*]
    note right of CheckRange
        Fixed calculation using
        dataLength/2 instead of
        dataLength-1
    end note
Loading

File-Level Changes

Change Details Files
Fixed incorrect address range check
  • Changed the end address calculation in the IsLegalRange check to use half the data length. This corrects the range used for the checksum calculation, ensuring that it covers the correct memory area.
  • Updated the condition in the IsLegalRange check from pCommand->address+pCommand->dataLength-1 to pCommand->address+pCommand->dataLength / 2 to reflect the corrected range. This prevents potential access violations or incorrect checksum calculations.
src/mcc_generated_files/boot/boot_process.c

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @bessman - I've reviewed your changes and found some issues that need to be addressed.

Blocking issues:

  • The range check validates only half the actual memory access range, risking buffer overruns (link)

Overall Comments:

  • Please add a comment explaining why the address range needs to be divided by 2 (e.g., if this is converting between byte and word addresses)
Here's what I looked at during the review
  • 🔴 General issues: 1 blocking issue
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

src/mcc_generated_files/boot/boot_process.c Show resolved Hide resolved
@bessman bessman merged commit 973a8cf into fossasia:main Dec 23, 2024
1 check passed
@bessman bessman deleted the fix/checksum-address branch December 23, 2024 21:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant