Skip to content

guard negative value_size in memcache PopStore#3392

Open
ubeddulla wants to merge 1 commit into
apache:masterfrom
ubeddulla:memcache-popstore-value-size
Open

guard negative value_size in memcache PopStore#3392
ubeddulla wants to merge 1 commit into
apache:masterfrom
ubeddulla:memcache-popstore-value-size

Conversation

@ubeddulla

Copy link
Copy Markdown
Contributor

MemcacheResponse::PopStore derives value_size by subtracting the reply's extras_length and key_length from total_body_length, but unlike its siblings PopGet, PopCounter and PopVersion it never checks whether value_size went negative before handing it to cutn(&_err, value_size). A server (or man-in-the-middle) that returns a STORE/DELETE/FLUSH error reply whose extras plus key exceed the body drives value_size below zero, so the huge size_t drains the rest of the pipelined buffer into the error string and desyncs the following replies on the connection. Add the same value_size < 0 guard the sibling parsers already carry.

Signed-off-by: ubeddulla khan <ubed@bugqore.com>
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