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 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.