Skip to content

Reject ASCII control characters in cache keys - #664

Open
blouirts123 wants to merge 1 commit into
pinterest:masterfrom
blouirts123:fix/control-character-keys
Open

blouirts123 wants to merge 1 commit into
pinterest:masterfrom
blouirts123:fix/control-character-keys

Conversation

@blouirts123

Copy link
Copy Markdown

check_key_helper accepts non-whitespace ASCII controls such as SOH and DEL, although the Client API and memcached key protocol prohibit control characters. Reject them before a connection is opened, with regressions for byte/string keys and the Client.set path. High-byte raw keys and UTF-8 behavior remain covered.

This complements #663's whitespace-only key case.

Validation on Windows Python 3.14: nine focused tests pass, including an independent rerun; 496 unit tests pass with one existing skip and the known Unix-socket test excluded. That Unix-socket failure also reproduces on the clean base. Flake8 and changed-file formatting checks pass. No live memcached daemon was used; these checks establish the client-side validation contract.

@blouirts123
blouirts123 requested review from a team and jparise as code owners October 15, 2026 23:55
@blouirts123
blouirts123 marked this pull request as draft October 16, 2026 04:51
@blouirts123
blouirts123 marked this pull request as ready for review October 16, 2026 05:24
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