ippsample
ippsample copied to clipboard
GREASE-like support for ipptool and ippserver
Investigate implementing fuzzing and GREASE support into ipptool, specifically for inserting randomized attributes with different names, values, and syntaxes.
Probably there should be a way to insert a random value tag, attribute name, and/or value, plus insert N random attributes.
In fuzzing/grease mode we need to make sure we report/record the actual IPP message so that bug reports, etc. can include the full request for testing and debugging.
Feedback from morning IPP session:
- Should also include ippserver
- Perhaps use a separate ipptool file generator for the fuzzing
- GREASE support likely needs to be made part of the ipptool/ippserver code (maybe add an API to libcups to append random attributes to the request?)
Work list for this bug:
- [ ] libcups: new "void ippAddRandomAttributes(ipp_t *ipp)" API for adding random attributes and values to a request or response in current group. Needs to be public API so that servers based on the public API can implement it.
- [ ] ipptool: new "-g" (GREASE) option to automatically inject random attributes into every request, and a "GREASE" directive inside test files.
- [ ] ippserver: new "-g" (GREASE) option and system.conf "GREASE" directive to enable random attributes in every response.
- [ ] Documentation of GREASE extensions
I'll file a separate issue to track a new fuzzing tool.
Created issue #72 for the ippfuzz tool.
Moved to the libcups project