Browse Prior Art Database

Buffer Initialization Errors and the Foxbuff Test Tool

IP.com Disclosure Number: IPCOM000115912D
Original Publication Date: 1995-Jul-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 2 page(s) / 79K

Publishing Venue

IBM

Related People

Laymon, DB: AUTHOR [+3]

Abstract

The Network Control Program (NCP) has long been plagued with problems arising from failure to initialize data buffer fields to zero before use. There are numerous cases of such defects existing in the customer environment for years before being detected by customers and fixed via Authorized Program Analysis Reports (APARs).

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Buffer Initialization Errors and the Foxbuff Test Tool

      The Network Control Program (NCP) has long been plagued with
problems arising from failure to initialize data buffer fields to
zero before use.  There are numerous cases of such defects existing
in the customer environment for years before being detected by
customers and fixed via Authorized Program Analysis Reports (APARs).

      Most of these defects are difficult to detect by inspection of
the code because the code which initializes a given bit to B'0' may
be in a service routine of a macro which expands inline.  In order to
verify that this bit is always initialized to B'0', one would have to
investigate all invocations of the macro, a difficult and very
time-consuming task, to confirm that this bit for this function goes
through one of the code paths that does correctly initialize the bit.

      Testing the code by execution on the target machine is another
possible means of exposing buffer initialization errors.  However,
the following constraints make it very difficult to expose these
problems by testing:
  o  Most NCP buffer fields are zero after the target machine is
      loaded and initialization is complete.
  o  Buffers are reused only after the entire buffer pool (typically
      several thousand buffers) has been used (This is known as
buffer
      pool wrapping).
  o  In primary test environments, it is difficult to cause the
buffer
      pool to wrap.
  o  Even after the buffer pool has wrapped, further testing will
      reveal this class of error only if the critical bit(s) remain
on
      as the result of the buffer's prior use.

Thus, exposing this class of error in the current software test
environment is never a certainty.

      An example of this in NCP is the "Enqueued Bit" in the first
buffer's ECB.  The ECB is a data area within the first, or only,
buffer of a chain of buffers where specific informat...