A patch is a piece of software designed to fix problems with, or
update a computer program or its supporting data. This includes
fixing security vulnerabilities and other bugs, and improving
the usability or performance. Though meant to fix problems,
poorly designed patches can sometimes introduce new problems.
Patch management is the process of using a strategy and plan of
what patches should be applied to which systems at a specified
time. Programmers publish and apply patches in various forms.
Because proprietary software authors withhold their source code,
their patches are distributed as binary executables instead of
source. This type of patch modifies the program executable. The
program the user actually runs, either by modifying the binary
file to include the fixes or by completely replacing it. Patches
can also circulate in the form of source code modifications. In
these cases, the patches consist of textual differences between
two source code files. These types of patches commonly come out
of open so