Minutes of the 24 March 2011 Teleconference Austin-516 Page 1 of 1 Submitted by Andrew Josey, The Open Group. March 25 , 2011 Attendees Andrew Josey, The Open Group Don Cragun, PASC OR Jim Pugsley, Oracle Geoff Clare, The Open Group Mark Brown, IBM, TOG OR Eric Blake, Red Hat Darrell May, Oracle Nick Stoughton, USENIX, ISO/IEC OR * New Business Bug 0000370: addclose should not cause posix_spawn to fail if closing an already closed fd http://austingroupbugs.net/view.php?id=370 Jim raised an issue with Bug 370 which had been closed as change for Issue 8. There are now implementations that implement this behavior, and thus he asked if the group would consider issuing an interpretation to recognize this as a defect and permit the behaviour for Issue 7. It was agreed that Bug 370 should be turned into an interpretation. Interpretation response The standard states that posix_spawn() must fail with an EBADF error if a request is made to close a file descriptor that is already closed, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor. Rationale: There are existing implementations that behave this way and there is no reason why this should be disallowed. Notes to the Editor (not part of this interpretation): Make the changes presented in the Desired Action section. TC1 status: Andrew reported that the editors were now in the process of preparing the Technical Corrigendum 1 to the 2008 edition of the standard. Currently in the pipeline are 235 bugs, and the editors had completed approximately 25% of those at the time of the meeting. The plan is to have a complete draft TC for April 15 -- note that the changes at that time will not yet be integrated into a full draft. In the course of preparing the TC , two conflicting changes had been found for the dlerror function. The changes with the agreed updates are included below: ------------------ Change Number: XSH/TC1/D1/nn [75] On Page: 730 Line: 24542 Section: dlerror In the RETURN VALUE section, add a new paragraph at the end of the section: "The application shall not modify the string returned. The returned pointer might be invalidated or the string content might be overwritten by a subsequent call to dlerror()." >>>>> This change will need to be modified to account for the buffer being allowed to be per-thread. Change to: ... overwritten by a subsequent call to dlerror() in the same thread (if dlerror() is thread-safe) or in any thread (if dlerror() is not thread-safe). <<<<<< On Page: 730 Line: 24555 Section: dlerror In the APPLICATION USAGE section, delete the following: The messages returned by dlerror() may reside in a static buffer that is overwritten on each call to dlerror(). Application code should not write to this buffer. Programs wishing to preserve an error message should make their own copies of that message." >>>>>> Keep this change. <<<<<< Change Number: XSH/TC1/D1/nn [97] On Page: 730 Line: 24539 Section: dlerror In the DESCRIPTION section, change from: The dlerror() function need not be thread-safe. to: It is implementation-defined whether or not the dlerror() function is thread-safe. A thread-safe implementation shall return only errors that occur on the current thread. >>>>> Keep this change. <<<<< On Page: 730 Lines: 24555-24560 Section: dlerror In the APPLICATION USAGE section , change from The messages returned by dlerror() may reside in a static buffer that is overwritten on each call to dlerror(). to: The messages returned by dlerror() reside in a buffer that is either system wide or thread wide that may be overwritten on each call to dlerror(). >>>>>> This change is not needed as the text will be deleted by the change in the other bug. <<<<< Andrew will add notes to the Mantis bugs to record the updates required. * We picked up on regular Bug processing Bug 0000251: Forbid bytes 1 through 31 (inclusive) in filenames OPEN http://austingroupbugs.net/view.php?id=251 Don reported that he is still working on this item. Bug 0000385: free should not change errno on success Accepted as Marked http://austingroupbugs.net/view.php?id=385 Eric completed his action from last time. There were some comments on the web which we took into account, modifying the bug. At line 30583 [XSH free DESCRIPTION], add a paragraph with CX shading: The free() function shall not modify errno if ptr is a null pointer or a pointer previously returned as if by malloc() and not yet deallocated. At line 30591 [APPLICATION USAGE], add a new paragraph: Because the free() function does not modify errno for valid pointers, it is safe to use it in cleanup code without corrupting earlier errors, such as in this example code: // buf was obtained by malloc(buflen) ret = write(fd, buf, buflen); if (ret < 0) { free(buf); return ret; } However, earlier versions of this standard did not require this, and the same example had to be written as: // buf was obtained by malloc(buflen) ret = write(fd, buf, buflen); if (ret < 0) { int save = errno; free(buf); errno = save; return ret; } At line 30620 [freeaddrinfo DESCRIPTION], add a sentence: The freeaddrinfo() function shall not modify errno if ai is a sublist previously returned by getaddrinfo() and not yet freed. At line 30834 [freelocale DESCRIPTION], add a sentence: The freelocale() function shall not modify errno if locobj is a locale object previously returned by newlocale() or duplocale() and not yet released by freelocale() or newlocale(). At line 36254 [glob DESCRIPTION], add a sentence: The globfree() function shall not modify errno if pglob was previously used by glob() and not yet freed. At line 36873 [if_freenameindex DESCRIPTION], add a sentence: The if_freenameindex() function shall not modify errno if ptr was previously returned by if_nameindex() and not yet freed. At line 56540 [regcomp DESCRIPTION], add a sentence: The regfree() function shall not modify errno if preg was previously returned by regcomp() and not yet freed. At line 70965 [wordexp DESCRIPTION], add a sentence: The wordfree() function shall not modify errno if pwordexp was previously modified by wordexp() and not yet freed. Bug 0000376: dev_t should be integral Accepted as Marked http://austingroupbugs.net/view.php?id=376 An interpretation is required. This item is tagged TC1-2008. Interpretation response: The standard states that dev_t is allowed to be a floating type, and conforming applications must conform to this. However, concerns have been raised about this which are being referred to the sponsor. Rationale: Although dev_t is allowed to be a floating type, all known implementations use an integral type and many applications assume that it is an integral type. Notes to the Editor (not part of this interpretation): Between lines 13415 and 13416 [XBD DESCRIPTION], add a bullet: * dev_t shall be an integer type. At line 18820 [XSH 2.12.1 Defined Types], change from: dev_t Arithmetic type used for device numbers. to: dev_t Integer type used for device numbers. Bug 0000379: rename() ETXTBSY description talks about the wrong argument Accepted http://austingroupbugs.net/view.php?id=379 This item is tagged for TC1-2008 Bug 0000386: environ should be declared in http://austingroupbugs.net/view.php?id=386 This item is tagged for TC1-2008 At line 25708, change "In addition, the following variable:" to "In addition, the following variable, which must be declared by the user if it is to be used directly:" Bug 0000374: malloc(0) and realloc(p,0) must not change errno on success OPEN http://austingroupbugs.net/view.php?id=374 It was agreed that we need to split this into two bugs. A note was added to this bug. The issue of leaving errno unchanged on successful allocation is only appropriate for Issue 8; and this bug should not be resolved until after 0000400 regarding the conflict between C99 and POSIX on realloc behavior has been fixed first in TC1. Next Steps ---------- The next call will be on March 31st at 08:00 Pacific and will continue processing defect reports. This call will be for the regular 90 minutes. http://austingroupbugs.net See the calendar for the list of dialup numbers. An IRC channel will be available for the meeting irc://irc.freestandards.org #austin ICAL: http://www.google.com/calendar/ical/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic XML: http://www.google.com/calendar/feeds/nvctqtstkuni3fab9k3jqtrt4g@group.calendar.google.com/public/basic