ippsample icon indicating copy to clipboard operation
ippsample copied to clipboard

GREASE-like support for ipptool and ippserver

Open michaelrsweet opened this issue 7 years ago • 4 comments
trafficstars

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.

michaelrsweet avatar Feb 07 '18 03:02 michaelrsweet

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.

michaelrsweet avatar Feb 07 '18 13:02 michaelrsweet

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?)

michaelrsweet avatar Feb 07 '18 20:02 michaelrsweet

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.

michaelrsweet avatar Feb 08 '18 14:02 michaelrsweet

Created issue #72 for the ippfuzz tool.

michaelrsweet avatar Feb 08 '18 15:02 michaelrsweet

Moved to the libcups project

michaelrsweet avatar Mar 20 '23 01:03 michaelrsweet