Email List: Xaustin-review-lX
[All Lists]

Defect in XSH mq_unlink

To: yyyyyyyyyyyyyyy@xxxxxxxxxxxxx
Subject: Defect in XSH mq_unlink
From: Geoff Clare <yyy@xxxxxxxxxxxxx>
Date: Tue, 8 Nov 2005 16:52:21 +0000
@ page 814 line 26691-26693 section mq_unlink objection [gwc mq_unlink 
ENAMETOOLONG]

Problem:

Defect code :  1. Error

XSH ERN 112 contains corrections to the mq_open() and sem_open()
pages related to the {NAME_MAX} and {PATH_MAX} length limits for
message queue and semaphore names.

The same issue also affects mq_unlink() and sem_unlink().

Just making the same change to the ENAMETOOLONG error for these
functions as was done for mq_open() and sem_open() would solve the
problem, but it would also introduce another: it would permit
`Weirdnix' implementations where a message queue or semaphore name
of a given length can be created, but attempting to unlink it
produces an ENAMETOOLONG error.  I have attempted to address this
by adding an extra requirement on the end of the ENAMETOOLONG
descriptions.  The wording could probably be improved, and it may
be better to add it in a different place.

Action:

Delete lines 26691-26693:

    "[ENAMETOOLONG]
        The length of the name argument exceeds {PATH_MAX} or a
        pathname component is longer than {NAME_MAX}."

After line 26694 add:

    "The mq_unlink() function may fail if:

       [ENAMETOOLONG]
          The length of the name argument exceeds _POSIX_PATH_MAX on
          systems that do not support the XSI option [XSI]or
          exceeds _XOPEN_PATH_MAX on XSI systems[/XSI], or has a
          pathname component that is longer than _POSIX_NAME_MAX on
          systems that do not support the XSI option [XSI]or
          longer than _XOPEN_NAME_MAX on XSI systems[/XSI].
          A call to mq_unlink() with a name argument that contains
          the same message queue name as was previously used in a
          successful mq_open() call shall not give an ENAMETOOLONG
          error."


On page 1281 line 40127-40129 section sem_unlink:

Delete lines 40127-40129:

    "[ENAMETOOLONG]
        The length of the name argument exceeds {PATH_MAX} or a
        pathname component is longer than {NAME_MAX}."

After line 40130 add:

    "The sem_unlink() function may fail if:

       [ENAMETOOLONG]
          The length of the name argument exceeds _POSIX_PATH_MAX on
          systems that do not support the XSI option [XSI]or
          exceeds _XOPEN_PATH_MAX on XSI systems[/XSI], or has a
          pathname component that is longer than _POSIX_NAME_MAX on
          systems that do not support the XSI option [XSI]or
          longer than _XOPEN_NAME_MAX on XSI systems[/XSI].
          A call to sem_unlink() with a name argument that contains
          the same semaphore name as was previously used in a
          successful sem_open() call shall not give an ENAMETOOLONG
          error."

<Prev in Thread] Current Thread [Next in Thread>