patch
patch: 1. n. 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. vt. To
insert a patch into a piece of code. 3. [in the Unix world] n. A
diff (sense 2). 4. A set of modifications to binaries to be
applied by a patching program. IBM operating 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. 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. 5. [Unix] the `patch(1)' program, written by
Larry Wall, which automatically applies a patch (sense 3) to a set
of source code.
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.