Errors in Third-Party Code and Libraries (Error Detection)

Related Topics

The reliability of your application depends upon the quality of the third-party code you include in it. Although you can't edit this code to fix the problems, there are compelling reasons to review the messages that Purify reports about the code.

When Purify detects errors or warnings in third-party code, you can develop a workaround or use a product from a different vendor. You can also request that your vendor fix the problems, or Purify its product, to help ensure that the components you build into your application meet your high standards.

It is possible that your own program is causing error reports to appear in the third-party code. Unless you check the third-party code, you cannot uncover the errors in your code. For example, if your code allocates an undersized buffer and then passes the buffer into a third-party routine to receive an argument, the buffer overwrite occurs within the third-party code. If you have no checking in the third-party code, the corruption goes undetected; until the program crashes mysteriously much later.

Purify checks third-party code by modeling the most common interfaces in vendor-supplied system DLLs and run-time libraries. Purify doesn't instrument the modeled functions because the checking is done at the interface boundaries. The remaining object code in these DLLs and libraries, and in any additional third-party libraries, is instrumented so that each load and store instruction is validated and checked.

(C) Copyright IBM Corporation 1992, 2010.