Change in function

This example shows the possible risk of a change in function when calling a program in the library.

Figure 1 shows an application library. Program A calls Program B, which is expected to be in LIBA. Program B performs updates to File A. Program B is called without a qualified name, so the library list is searched until Program B is found.

Figure 1. Library list–expected environment
Library list–expected environment

A programmer or another knowledgeable user might place another Program B in the library LIBB. The substitute program might perform different functions, such as making a copy of confidential information or updating files incorrectly. If LIBB is placed ahead of LIBA in the library list, the substitute Program B is run instead of the original Program B, because the program is called without a qualified name:

Figure 2. Library list–actual environment
Library list–actual environment