<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>patch</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../P.html" title="P"/><link rel="previous" href="pastie.html" title="pastie"/><link rel="next" href="patch-pumpkin.html" title="patch pumpkin"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">patch</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="pastie.html">Prev</a> </td><th width="60%" align="center">P</th><td width="20%" align="right"> <a accesskey="n" href="patch-pumpkin.html">Next</a></td></tr></table><hr/></div><dt><a id="patch"/><dt xmlns="" id="patch"><b>patch</b></dt></dt><dd><p> 1. <span class="grammar">n.</span> A temporary addition to a
   piece of code, usually as a <a href="../Q/quick-and-dirty.html"><i class="glossterm">quick-and-dirty</i></a> 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 <a href="../D/diff.html"><i class="glossterm">diff</i></a> or
   <a href="../M/mod.html"><i class="glossterm">mod</i></a> 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
   <a href="../H/HLL.html"><i class="glossterm">HLL</i></a>.  Compare <a href="../O/one-line-fix.html"><i class="glossterm">one-line fix</i></a>.
   </p></dd><dd><p> 2. <span class="grammar">vt.</span> To insert a patch into a
   piece of code.</p></dd><dd><p> 3. [in the Unix world] <span class="grammar">n.</span> A
   <a href="../D/diff.html"><i class="glossterm">diff</i></a> (sense 2).  </p></dd><dd><p> 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 &#8220;<span class="quote">grow scar tissue</span>&#8221;).  The result was often a convoluted
   <a href="patch-space.html"><i class="glossterm">patch space</i></a> and headaches galore.</p></dd><dd><p> 5. [Unix] the
   <span class="citerefentry"><span class="refentrytitle">patch</span>(1)</span>
   program, written by Larry Wall, which automatically applies a patch (sense
   3) to a set of source code.</p></dd><dd><p>There is a classic story of a <a href="../T/tiger-team.html"><i class="glossterm">tiger team</i></a>
   penetrating a secure military computer that illustrates the danger inherent
   in binary patches (or, indeed, any patches that you can't &#8212; or don't
   &#8212; inspect and examine before installing).  They couldn't find any
   <a href="../T/trap-door.html"><i class="glossterm">trap door</i></a>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.</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="pastie.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="../P.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="patch-pumpkin.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">pastie </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> patch pumpkin</td></tr></table></div></body></html>