GIMP plug-ins need better error checking on passed parameters.
Greetings, all.
One of my side projects while working on Tiny-Fu has been creating and
running a script which calls all PDB routines with bad data to see how
the various routines handle the bad data. My test script passes -1 for
the image, drawable, layer, channel, and all INT arguments. I also pass
empty strings for all STRING arguments.
My tests turned up a few minor bugs within GIMP which have since been
fixed. However, the tests of the plug-ins have shown them to be VERY bad
when it comes to detecting bad data. So far, I get segmentation faults
in 58 out of the 71 plug-in calls I have tested. I supect the failure
rate will probably continue to be around this high in the remainder of
the 135 available plug-in calls.
Admittedly my tests are harsh but they are designed to look for
problems. I have found it is too easy to inadvertently pass bad data via
a PDB call due to an error in a script. These errors should not cause
segmentation faults which could result in someone losing work they had
done on an image.
It would be nice to have these problems with the plug-ins fixed for the
2.2 release of GIMP. Improving, or adding, validation checks on passed
data in plug-ins would be a nice little project for someone who wants to
get their feet wet in GIMP development.