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