Minutes of the 13th October 2016 Teleconference Austin-787 Page 1 of 1 Submitted by Andrew Josey, The Open Group. 14th October 2016 Attendees: Mark Ziegast, SHware Systems Don Cragun, IEEE PASC OR Joerg Schilling, FOKUS Fraunhofer Nick Stoughton, USENIX, ISO/IEC JTC 1/SC 22 OR Geoff Clare, The Open Group Martin Rehak, Oracle, The Open Group OR Eric Blake, Red Hat Richard Hansen, Google David Clissold, IBM (partial) Andrew Josey, The Open Group (partial) * General news A new pdf edition has been posted to correct pdf bookmarking. The html had also had some minor updates to fix some incorrect links in XRAT. An issue with shading in the syconf() page remains - seems to be a troff issue, and needs further investigation. Andrew noted that a new version of the POSIX conformance test suite for the 2016 edition will be introduced shortly. * Outstanding actions ( Please note that this section has been flushed to shorten the minutes - to locate the previous set of outstanding actions, look to the minutes from 28 Jan 2016) Bug 0000249: Add standard support for $'...' in shell Reopened http://austingroupbugs.net/bug_view_page.php?bug_id=249 We will return to bug 249 on a future call. Bug 0000953: Alias expansion is under-specified Was Accepted as Marked http://austingroupbugs.net/view.php?id=953 Richard has an action to propose new wording to discuss in a future telecon. * Current Business Bug #1011: Make the binary search tree functions friendlier to use: require balancing, add typing and allow destruction Accepted as Marked http://austingroupbugs.net/view.php?id=1011 This item is tagged for Issue 8. (The following page and line numbers are based on document C165, the merged Issue 7+TC2 document.) On page 327 after line 11111 (XBD description), insert the following new paragraph: The header shall define via typedef the posix_tnode type as an alias for void. On page 327 lines 11123-11130 (XBD description), change: void *tdelete(const void *restrict, void **restrict, int(*)(const void *, const void *)); void *tfind(const void *, void *const *, int(*)(const void *, const void *)); void *tsearch(const void *, void **, int(*)(const void *, const void *)); void twalk(const void *, void (*)(const void *, VISIT, int )); to: void *tdelete(const void *restrict, posix_tnode **restrict, int (*)(const void *, const void *)); posix_tnode *tfind(const void *, posix_tnode *const *, int (*)(const void *, const void *)); posix_tnode *tsearch(const void *, posix_tnode **, int (*)(const void *, const void *)); void twalk(const posix_tnode *, void (*)(const posix_tnode *, VISIT, int)); On page 327 line 11134 (XBD rationale), change: None. to: Earlier versions of this standard explicitly used void for both node and key references where this version now uses posix_tnode for nodes and keeps void in the text referring only to keys. In order to preserve backwards compatibility, this version defines posix_tnode as an alias for void. The change was made to make the function prototypes more easily understandable. On page 2136 line 68415 (XSH tdelete synopsis) change: void *tdelete(const void *restrict key, void **restrict rootp, int(*compar)(const void *, const void *)); void *tfind(const void *key, void *const *rootp, int(*compar)(const void *, const void *)); void *tsearch(const void *key, void **rootp, int (*compar)(const void *, const void *)); void twalk(const void *root, void (*action)(const void *, VISIT, int)); to: void *tdelete(const void *restrict key, posix_tnode **restrict rootp, int (*compar)(const void *, const void *)); posix_tnode *tfind(const void *key, posix_tnode *const *rootp, int (*compar)(const void *, const void *)); posix_tnode *tsearch(const void *key, posix_tnode **rootp, int (*compar)(const void *, const void *)); void twalk(const posix_tnode *root, void (*action)(const posix_tnode *, VISIT, int)); On page 2136 line 68445-68446 (XSH tdelete description) change: The variable pointed to by rootp shall be changed if the deleted node was the root of the tree. to: The variable pointed to by rootp shall be set to a pointer to the new root of the tree if the root of the tree was changed. On page 2137 line 68478 (XSH tdelete return value) add a new paragraph: In all cases where a pointer to a node is returned, the structure pointed to by the return value is unspecified and shall not be modified by the application, but it shall be possible to cast a pointer-to-node into a pointer-to-pointer-to-element to access the element stored in the node. On page 2137-2139 line as below (XSH tdelete examples) change void * to posix_tnode * on the following lines: 68494 void *root = NULL; 68500 void *node; 68501 void print_node(const void *, VISIT, int); 68562 print_node(const void *ptr, VISIT order, int level) On page 2139 line 68578 (XSH tdelete application usage) change: Since the return value of tdelete() is an unspecified non-null pointer in the case that the root of the tree has been deleted, applications should only use the return value of tdelete() as indication of success or failure and should not assume it can be dereferenced. to: Since the return value of tdelete() is an unspecified non-null pointer in the case that the root of the tree has been deleted, applications should only use the return value of tdelete() as indication of success or failure in this case and should not assume it can be dereferenced. However, the only way that applications can tell if this case may have occurred is by checking whether the variable pointed to by rootp changed. Since this variable can change for other reasons (e.g., tree balancing), using the return value of tdelete() as anything other than a boolean indicator is unreliable at best and is discouraged. On page 2139 line 68584 (XSH tdelete rationale) change: None. to: Implementations are encouraged to use balanced trees to reduce the depth of the trees that are created and improve tree search times. Bug #1013: cd and pwd should not default to -L Rejected This was discussed at length during the development of the POSIX.2-1992 standard and the arguments have not changed. 24 years of history with -L as the default make changing the behavior to implementation-defined or unspecified more of a security problem than either behavior as a defined requirement. We do not agree that -P is inherently safer than -L and do not believe that changing the specification at this time will improve security in any way. Therefore, this change is rejected. Bug 1015: Handling of inside a (double-quoted) backquote command substitution OPEN http://austingroupbugs.net/view.php?id=1015 This was discussed , and will be continued at the next call. Next Steps ---------- The next call is on October 20th, 2016 (a Thursday) Calls are anchored on US time. (8am Pacific) This call will be for the regular 90 minutes. http://austingroupbugs.net An IRC channel will be available for the meeting irc://irc.freenode.net/austingroupbugs An etherpad is usually up for the meeting, with a URL using the date format as below: http://posix@posix.rhansen.org:9001/p/201x-mm-dd password=2115756#