Skip to content

negative buffer size handling in ODBCAppender to prevent unsigned overflow#626

Merged
swebb2066 merged 1 commit intoapache:masterfrom
jmestwa-coder:odbc-negative-buffer-size
Apr 7, 2026
Merged

negative buffer size handling in ODBCAppender to prevent unsigned overflow#626
swebb2066 merged 1 commit intoapache:masterfrom
jmestwa-coder:odbc-negative-buffer-size

Conversation

@jmestwa-coder
Copy link
Copy Markdown
Contributor

Summary

Fixes an issue where negative values provided to the BUFFERSIZE option in ODBCAppender could be cast to an unsigned type, resulting in an unintended very large buffer size.

Problem

  • OptionConverter::toInt() may return negative values (for example "-10").`
  • These values were directly cast to size_t, causing negative values to become large positive numbers.

Fix

Adds a simple guard before casting to ensure negative values are not converted to unsigned:

int parsed = OptionConverter::toInt(value, 1);
if (parsed < 0) {
    parsed = 1;
}
setBufferSize((size_t) parsed);

Behaviour Impact

  • No change for valid inputs.
  • Only negative values are corrected.
  • Existing parsing behaviour remains unchanged.

Tests

Added testNegativeBufferSizeOption to verify negative values fallback to 1.

Scope

  • Limited to ODBCAppender::setOption (BUFFERSIZE path).
  • No changes to parsing logic or shared utilities.

@swebb2066 swebb2066 merged commit 8ef7f6b into apache:master Apr 7, 2026
16 of 17 checks passed
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.

2 participants