Skip to content

src: Fix division by zero in UDP bandwidth calculation in iperf_api.c #1906

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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

AntonMoryakov
Copy link

PLEASE NOTE the following text from the iperf3 license. Submitting a
pull request to the iperf3 repository constitutes "[making]
Enhancements available...publicly":

You are under no obligation whatsoever to provide any bug fixes, patches, or
upgrades to the features, functionality or performance of the source code
("Enhancements") to anyone; however, if you choose to make your Enhancements
available either publicly, or directly to Lawrence Berkeley National
Laboratory, without imposing a separate written license agreement for such
Enhancements, then you hereby grant the following license: a non-exclusive,
royalty-free perpetual license to install, use, modify, prepare derivative
works, incorporate into other computer software, distribute, and sublicense
such enhancements or derivative works thereof, in binary and source code form.

The complete iperf3 license is available in the LICENSE file in the
top directory of the iperf3 source tree.

  • Version of iperf3 (or development branch, such as master or
    3.1-STABLE) to which this pull request applies: master

  • Brief description of code changes (suitable for use as a commit message):

    • In iperf_api.c, variables sender_time and receiver_time were used as denominators in bandwidth calculations without a zero check, which could lead to division by zero and undefined behavior.
    • To fix this, introduced sent_bandwidth and recv_bandwidth variables with a conditional check to prevent division by zero. If time is zero, bandwidth is now safely set to 0.0.

In iperf_api.c, variables sender_time and receiver_time were used as
denominators in bandwidth calculations without a zero check, which could
lead to division by zero and undefined behavior.

To fix this, introduced sent_bandwidth and recv_bandwidth variables with
a conditional check to prevent division by zero. If time is zero,
bandwidth is now safely set to 0.0.

Signed-off-by: Anton Moryakov <[email protected]>
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