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
door}s 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.
[glossary]
[Reference(s) to this entry by made by: {diff}{mod}{patch space}{social engineering}{tiger team}]