patch
1. A temporary addition to a piece of code, usually
as a {quick-and-dirty} remedy to an existing {bug} or
{misfeature}. A patch may or may not work, and may or may not
eventually be incorporated permanently into the program.
Distinguished from a {diff} or {mod} by the fact that a patch
is generated by more primitive means than the rest of the
program; the classical examples are instructions modified by
using the front panel switches, and changes made directly to
the binary executable of a program originally written in an
{HLL}. Compare {one-line fix}.
2. To insert a patch into a piece of code.
3. [in the Unix world] A {diff}.
4. A set of modifications to binaries to be applied by a
patching program. {IBM} systems often receive updates to the
{operating system} in the form of absolute {hexadecimal}
patches. If you have modified your OS, you have to
disassemble these back to the {source code}. The patches
might later be corrected by other patches on top of them
(patches were said to "grow scar tissue"). The result was
often a convoluted {patch space} and headaches galore.
There is a classic story of a {tiger team} penetrating a
secure military computer that illustrates the danger inherent
in binary patches (or, indeed, any patches that you can't - or
don't - inspect and examine before installing). They couldn't
find any {trap doors} or any way to penetrate security of
IBM's OS, so they made a site visit to an IBM office
(remember, these were official military types who were
purportedly on official business), swiped some IBM stationery,
and created a fake patch. The patch was actually the trapdoor
they needed. The patch was distributed at about the right
time for an IBM patch, had official stationery and all
accompanying documentation, and was dutifully installed. The
installation manager very shortly thereafter learned something
about proper procedures.
5. {Larry Wall}'s "patch" utility, which automatically applies
a patch to a set of {source code} or other text files. It
accepts input in any of the four forms output by the {Unix}
{diff} utility and uses many helpful {heuristics} to determine
how to apply them.
Diff and patch are the standard way of producing and applying
updates to {Unix} files ditributed via {Usenet} and the
{Internet}, both have been ported to other {operating
systems}.
See your nearest {GNU archive site}.
[{Jargon File}]
(1996-06-04)