Yelp / python-gearman

Gearman API - Client, worker, and admin client interfaces
http://github.com/Yelp/python-gearman/
Other
242 stars 124 forks source link

Fixed handling of null chars in arguments. No 'ascii' checks. #26

Closed eskil closed 12 years ago

eskil commented 12 years ago

The protocol says; "Arguments given in the data part are separated by a NULL byte, and the last argument is determined by the size of data after the last NULL byte separator. All job handle arguments must not be longer than 64 bytes, including NULL terminator."

This adds a check to ensure that all arguments, but the last, do not contain \0.

I do not check the args pass encode('ascii'). It would make sense, since it's not known what will happen inside the bowels of gearmand. It uses memcmp for the most part, and we have to assume the queue storage can handle utf8, as long as it does not contain \0.

Roguelazer commented 12 years ago

shipit