Bug 1215496 - man 3 crypt crypt_data struct erroneously includes "phrase" member instead of "input"
Summary: man 3 crypt crypt_data struct erroneously includes "phrase" member instead of...
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Distribution
Classification: openSUSE
Component: Documentation (show other bugs)
Version: Leap 15.4
Hardware: Other Other
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: package coldpool
QA Contact: Frank Sundermeyer
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-20 00:44 UTC by David Rankin
Modified: 2024-07-09 20:30 UTC (History)
3 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description David Rankin 2023-09-20 00:44:28 UTC
OpenSUSE Leap 15.4 man 3 crypt page includes the definition for struct crypt_data as:

           struct crypt_data {
               char output[CRYPT_OUTPUT_SIZE];
               char setting[CRYPT_OUTPUT_SIZE];
               char phrase[CRYPT_MAX_PASSPHRASE_SIZE];
               char initialized;
           };

The "phrase" member should actually be "input", e.g.

           struct crypt_data {
               char output[CRYPT_OUTPUT_SIZE];
               char setting[CRYPT_OUTPUT_SIZE];
               char input[CRYPT_MAX_PASSPHRASE_SIZE];
               char initialized;
           };

See /usr/include/crypt.h, e.g.

    /* Memory area used by crypt_r.  */
    struct crypt_data
    {
      /* crypt_r writes the hashed password to this field of its 'data'
        argument.  crypt_rn and crypt_ra do the same, treating the
        untyped data area they are supplied with as this struct.  */
      char output[CRYPT_OUTPUT_SIZE];
    
      /* Applications are encouraged, but not required, to use this field
        to store the "setting" string that must be passed to crypt_*.
        Future extensions to the API may make this more ergonomic.
    
        A valid "setting" is either previously hashed password or the
        string produced by one of the crypt_gensalt functions; see the
        crypt_gensalt documentation for further details.  */
      char setting[CRYPT_OUTPUT_SIZE];
    
      /* Applications are encouraged, but not required, to use this field
        to store the unhashed passphrase they will pass to crypt_*.
        Future extensions to the API may make this more ergonomic.  */
      char input[CRYPT_MAX_PASSPHRASE_SIZE];
    
      /* Reserved for future application-visible fields.  For maximum
        forward compatibility, applications should set this field to all
        bytes zero before calling crypt_r, crypt_rn, or crypt_ra for the
        first time with a just-allocated 'struct crypt_data'.  Future
        extensions to the API may make this more ergonomic.  */
      char reserved[CRYPT_DATA_RESERVED_SIZE];
    
      /* This field should be set to 0 before calling crypt_r, crypt_rn,
        or crypt_ra for the first time with a just-allocated
        'struct crypt_data'.  This is not required if crypt_ra is allowed
        to do the allocation itself (i.e. if the *DATA argument is a null
        pointer).  Future extensions to the API may make this more ergonomic.  */
      char initialized;
    
      /* Scratch space used internally.  Applications should not read or
        write this field.  All data written to this area is erased before
        returning from the library.  */
      char internal[CRYPT_DATA_INTERNAL_SIZE];
    };


Just a simple documentation error. There is no specific maintainer e-mail in the man page, so posted here for triage.
Comment 1 Johannes Segitz 2023-12-11 12:45:41 UTC
I'll assign it to the maintainer of the man pages package
Comment 3 Tomáš Bažant 2023-12-11 12:48:32 UTC
Thank you for reporting this bug!
It is being tracked and processed as part of our queue.
Comment 4 Petr Gajdos 2023-12-12 09:41:59 UTC
TL;DR: will do

To be completely precise, the man page does not come from man-pages package as far as I can tell:

$ rpm -qf /usr/share/man/man3/crypt.3.gz
libxcrypt-devel-4.4.36-1.4.x86_64
$

This man page comes from 15sp3, so coldpool@ is in charge. But I will have the duty next week anyway :).

Upstream commit:
https://github.com/besser82/libxcrypt/commit/b212d601549a0fc84cbbcaf21b931f903787d7e2
Comment 5 Petr Gajdos 2023-12-12 09:50:53 UTC
15sp3 request:
https://build.suse.de/request/show/315445
Comment 6 Michael Vetter 2023-12-13 19:09:19 UTC
SR#315445 got accepted.
Thank you Petr!
Comment 7 Maintenance Automation 2024-01-08 16:36:09 UTC
SUSE-RU-2024:0062-1: An update that has one fix can now be installed.

Category: recommended (moderate)
Bug References: 1215496
Sources used:
SUSE Enterprise Storage 7.1 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro 5.1 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro 5.2 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro for Rancher 5.2 (src): libxcrypt-4.4.15-150300.4.7.1
openSUSE Leap 15.3 (src): libxcrypt-4.4.15-150300.4.7.1
openSUSE Leap Micro 5.3 (src): libxcrypt-4.4.15-150300.4.7.1
openSUSE Leap Micro 5.4 (src): libxcrypt-4.4.15-150300.4.7.1
openSUSE Leap 15.4 (src): libxcrypt-4.4.15-150300.4.7.1
openSUSE Leap 15.5 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro for Rancher 5.3 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro 5.3 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro for Rancher 5.4 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro 5.4 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Micro 5.5 (src): libxcrypt-4.4.15-150300.4.7.1
Basesystem Module 15-SP4 (src): libxcrypt-4.4.15-150300.4.7.1
Basesystem Module 15-SP5 (src): libxcrypt-4.4.15-150300.4.7.1
Development Tools Module 15-SP4 (src): libxcrypt-4.4.15-150300.4.7.1
Development Tools Module 15-SP5 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise High Performance Computing ESPOS 15 SP3 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Server 15 SP3 LTSS 15-SP3 (src): libxcrypt-4.4.15-150300.4.7.1
SUSE Linux Enterprise Server for SAP Applications 15 SP3 (src): libxcrypt-4.4.15-150300.4.7.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.
Comment 8 Maintenance Automation 2024-07-09 20:30:41 UTC
SUSE-RU-2024:0062-2: An update that has one fix can now be installed.

Category: recommended (moderate)
Bug References: 1215496
Maintenance Incident: [SUSE:Maintenance:31876](https://smelt.suse.de/incident/31876/)
Sources used:
SUSE Linux Enterprise Micro 5.5 (src):
 libxcrypt-4.4.15-150300.4.7.1

NOTE: This line indicates an update has been released for the listed product(s). At times this might be only a partial fix. If you have questions please reach out to maintenance coordination.