[
https://issues.apache.org/jira/browse/CASSANDRA-15470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17010433#comment-17010433
]
Mallika Kulkarni commented on CASSANDRA-15470:
----------------------------------------------
Thanks [~jrwest] and [~djoshi]. I looked through the code. It seems to me that
for methods
* {{getColumnIndexSize}}
* {{getColumnIndexCacheSize}}
* {{getBatchSizeWarnThreshold}}
* {{getNativeTransportFrameBlockSize}}
0 < {{input}} < 2 * 1024 * 1024 is a good validation to have.
I do see existing validation for {{getRepairSessionSpaceInMegabytes}} in
{{DatabaseDescriptor::applyConfig}} and
{{DatabaseDescriptor::setRepairSessionSpaceInMegabytes}}, and for
{{getNativeTransportMaxFrameSize}} in {{DatabaseDescriptor::applyConfig}}.
However I do feel validations for all these inputs are necessary in their
respective Getter and Setter methods both as all the fields in {{Config}} class
are public, and {{DatabaseDescriptor::getRawConfig}} exposes a reference to the
{{Config}} class, and its values.
> Potential Overflow in DatabaseDescriptor Functions That Convert Between KB/MB
> & Bytes
> -------------------------------------------------------------------------------------
>
> Key: CASSANDRA-15470
> URL: https://issues.apache.org/jira/browse/CASSANDRA-15470
> Project: Cassandra
> Issue Type: Bug
> Components: Local/Config
> Reporter: Jordan West
> Assignee: Mallika Kulkarni
> Priority: Normal
> Fix For: 4.0-rc
>
>
> {{DatabaseDescriptor}} has several functions that convert between user
> supplied sizes in KB/MB and bytes. These are implemented without much
> consistency and, while unlikely, several have the potential to overflow since
> validation on the input is missing. Meanwhile, some widen the number to a
> long correctly. Options include: widening in all places or simply doing
> better validation on start up — currently only the lower bound of the valid
> range is checked for many of these fields.
> List of Affected {{DatabaseDescriptor}} Methods:
> * {{getColumnIndexSize}}
> * {{getColumnIndexCacheSize}}
> * {{getBatchSizeWarnThreshold}}
> * {{getNativeTransportFrameBlockSize}}
> * {{getRepairSessionSpaceInMegabytes}}
> * {{getNativeTransportMaxFrameSize}}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]