GitHub user adityasharad opened a pull request:

    https://github.com/apache/activemq-artemis/pull/1237

    ARTEMIS-1135: Fix lgtm.com alerts - overflows in integer addition or 
multiplication

    This PR addresses ARTEMIS-1135, issued based on the alerts found by the 
"Result of integer multiplication cast to long" and "Implicit narrowing 
conversion in compound assignment" rules at 
https://lgtm.com/projects/g/apache/activemq-artemis/alerts/. 
    
    In `MySQLSQLProvider`, overflow occurs when setting the max blob size, 
which overflows to zero at runtime rather than the intended 4GB
    In `MQTTProtocolHandler`, overflow occurs when determining the time to keep 
the connection alive.
    These are both fixed by casting the operands to `long` first.
    
    In `AddressControlImpl`, queue message counts are `long`s but added up in 
an `int`.
    In `MessageCounter.DayCounter`, the `counters` array holds `int`s but its 
elements will have `long` message counts added to them.
    These are both fixed by changing the counter variables and relevant return 
types to `long`.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/adityasharad/activemq-artemis 
fix/lgtm-alerts-int-overflow

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/activemq-artemis/pull/1237.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1237
    
----
commit b8f21bf2e31e5d9d121fd763d1b058bc2de1f6af
Author: Aditya Sharad <[email protected]>
Date:   2017-04-29T14:03:51Z

    ARTEMIS-1135: Fix integer multiplication overflows
    
    Multiplication operations where the operands have type `int` but the
    result is cast to `long` may lead to overflow.
    Fixes two instances of this problem, by ensuring the operands are cast
    to `long` during multiplication.
    This resolves the "Result of integer multiplication cast to long"
    alerts at https://lgtm.com/projects/g/apache/activemq-artemis/alerts.

commit bb4bee488020092eebfd0a1e6e84ab85bafd83c7
Author: Aditya Sharad <[email protected]>
Date:   2017-04-29T14:34:06Z

    ARTEMIS-1135: Fix potential message count overflow
    
    Have `AddressControlImpl::getMessageCount` use and return a `long`.
    Prevents potential overflow from use of an `int` count variable.
    Fixes one of the "Implicit narrowing conversion in compound assignment"
    alerts at https://lgtm.com/projects/g/apache/activemq-artemis/alerts.

commit 9c10169dc3fd45d8fe9784157ed5a6dcb84b1be2
Author: Aditya Sharad <[email protected]>
Date:   2017-04-29T14:52:08Z

    ARTEMIS-1135: Prevent overflow in `DayCounter`
    
    Use `long` array for hourly counters instead of `int` array.
    Prevents overflow when the number of new messages (a `long`) is added.
    Fixes one of the "Implicit narrowing conversion in compound assignment"
    alerts on https://lgtm.com/projects/g/apache/activemq-artemis/alerts.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to