Skip to main content

PM73574: FREAD ON A VARIABLE RECORD FORMAT TAPE DATASET AFTER A REPOSITION MAY RETURN INCORRECT DATA


A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When reading from a variable format tape data set following a
    reposition, the read may return residual data following the
    updated data.
    
    For example, a tape dataset containing 85 records (80 in the
    first block, 5 in the second) and the first block has been
    read (buffer contains records 1-80).  If the application
    gets the first record (via an fread() for instance) and then
    repositions to the second block (location of records 81-85):
    and you fread() these records, you may encounter residual
    data from the first block.  Your output may be:
    
    record 81/85
    record 82/85
    record 83/85
    record 84/85
    record 85/85
    record 6/85
    record 7/85
    ...
    -
    Where after reaching the end of the current block
    incorrect/residual data from the previous block read may
    be returned.
    
    
    Verification Steps:
    1) Ensure data in use resides on a tape device and is in
       a variable format.
    2) Ensure a resposition has been issued prior to encountering
       incorrect data.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: C/C++ applications repositioning or          *
    *                 rewinding variable length record             *
    *                 TAPE datasets.                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: C/C++ applications that reposition or   *
    *                      rewind in variable length record TAPE   *
    *                      datasets may process the current        *
    *                      buffer with an incorrect block size     *
    *                      leading to unpredictable results.       *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    See problem description.
    

Problem conclusion

  • The code was changed to fix the problem.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PM73574

  • Reported component name

    LE C LIBRARY

  • Reported component ID

    568819805

  • Reported release

    760

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-09-25

  • Closed date

    2012-12-10

  • Last modified date

    2013-01-02

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UK90183 UK90184

Modules/Macros

  • CELHOSRB CELHOSRW CELQOSRB CELQOSRW EDC4003A
    EDC40038
    

Fix information

  • Fixed component name

    LE C LIBRARY

  • Fixed component ID

    568819805

Applicable component levels

  • R770 PSY UK90183

       UP12/12/27 P F212

  • R780 PSY UK90184

       UP12/12/27 P F212

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

Rate this page:

(0 users)Average rating

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

z/OS XL C/C++

Runtime


Software version:
760


Operating system(s):
MVS, z/OS


Reference #:
PM73574


Modified date:
2013-01-02

Translate my page

Content navigation