Anonymous | Login | 2024-04-26 17:02 UTC |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||
ID | Category | Severity | Type | Date Submitted | Last Update | ||
0000168 | [1003.1(2008)/Issue 7] Shell and Utilities | Objection | Error | 2009-10-13 09:16 | 2013-04-16 13:06 | ||
Reporter | geoffclare | View Status | public | ||||
Assigned To | ajosey | ||||||
Priority | normal | Resolution | Accepted | ||||
Status | Closed | ||||||
Name | Geoff Clare | ||||||
Organization | The Open Group | ||||||
User Reference | |||||||
Section | 2.9.1.1 | ||||||
Page Number | 2317,2318 | ||||||
Line Number | 73143,73165 | ||||||
Interp Status | Approved | ||||||
Final Accepted Text | Note: 0000282 | ||||||
Summary | 0000168: Incorrect description of how the shell executes external utilities | ||||||
Description |
XCU 2.9.1.1 Command Search and Execution says (in item 1.d.i.b): ... the shell executes the utility in a separate utility environment (see Section 2.12, on page 2331) with actions equivalent to calling the execve() function as defined in the System Interfaces volume of POSIX.1-2008 with the path argument set to the pathname resulting from the search, arg0 set to the command name, and the remaining arguments set to the operands, if any. This refers to execve(), but the description of what is passed to it matches the arguments for execl(), not execve(). It also requires only the _operands_ to be passed, omitting any options (and the "--" delimiter if present). This defect goes all the way back to POSIX.2-1992. Item 2 in the same section also has the same problems. While fixing this, we should also address the issue raised on the mailing list in July 2009 regarding passing on invalid environment variables. The changes I have suggested allow both types of existing practice. |
||||||
Desired Action |
At line 73143 change: calling the execve() function as defined in the System Interfaces volume of POSIX.1-2008 with the path argument set to the pathname resulting from the search, arg0 set to the command name, and the remaining arguments set to the operands, if any. to: calling the execl() function as defined in the System Interfaces volume of POSIX.1-2008 with the path argument set to the pathname resulting from the search, arg0 set to the command name, and the remaining execl() arguments set to the command arguments (if any) and the null terminator. At line 73147 change: If the execve() function fails to: If the execl() function fails After line 73155 add a new paragraph (indented the same as the previous paragraph): It is unspecified whether environment variables that were passed to the shell when it was invoked, but were not used to initialize shell variables (see [xref to 2.5.3]) because they had invalid names, are included in the environment passed to execl() and (if execl() fails as described above) to the new shell. At line 73165 change: calling the execve() function defined in the System Interfaces volume of POSIX.1-2008 with the path and arg0 arguments set to the command name, and the remaining arguments set to the operands, if any. to: calling the execl() function as defined in the System Interfaces volume of POSIX.1-2008 with the path and arg0 arguments set to the command name, and the remaining execl() arguments set to the command arguments (if any) and the null terminator. At line 73169 change: If the execve() function fails to: If the execl() function fails After line 73173 add a new paragraph (indented the same as the previous paragraph): It is unspecified whether environment variables that were passed to the shell when it was invoked, but were not used to initialize shell variables (see [xref to 2.5.3]) because they had invalid names, are included in the environment passed to execl() and (if execl() fails as described above) to the new shell. |
||||||
Tags | tc1-2008 | ||||||
Attached Files | |||||||
|
Issue History | |||
Date Modified | Username | Field | Change |
2009-10-13 09:16 | geoffclare | New Issue | |
2009-10-13 09:16 | geoffclare | Status | New => Under Review |
2009-10-13 09:16 | geoffclare | Assigned To | => ajosey |
2009-10-13 09:16 | geoffclare | Name | => Geoff Clare |
2009-10-13 09:16 | geoffclare | Organization | => The Open Group |
2009-10-13 09:16 | geoffclare | Section | => 2.9.1.1 |
2009-10-13 09:16 | geoffclare | Page Number | => 2317,2318 |
2009-10-13 09:16 | geoffclare | Line Number | => 73143,73165 |
2009-10-13 09:16 | geoffclare | Interp Status | => --- |
2009-11-05 16:41 | ajosey | Interp Status | --- => Pending |
2009-11-05 16:41 | ajosey | Note Added: 0000282 | |
2009-11-05 16:41 | ajosey | Status | Under Review => Interpretation Required |
2009-11-05 16:41 | ajosey | Resolution | Open => Accepted |
2009-11-06 06:58 | ajosey | Note Edited: 0000282 | |
2009-11-06 06:58 | ajosey | Interp Status | Pending => Proposed |
2009-11-06 09:31 | geoffclare | Final Accepted Text | => Note: 0000282 |
2009-12-07 16:55 | ajosey | Interp Status | Proposed => Approved |
2010-09-21 11:29 | geoffclare | Tag Attached: tc1-2008 | |
2013-04-16 13:06 | ajosey | Status | Interpretation Required => Closed |
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |