Anonymous | Login | 2024-03-28 19:36 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 | ||
0000283 | [1003.1(2008)/Issue 7] System Interfaces | Objection | Error | 2010-07-15 11:17 | 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 | isalnum | ||||||
Page Number | 1135 | ||||||
Line Number | 37928 | ||||||
Interp Status | Approved | ||||||
Final Accepted Text | See Note: 0000485 | ||||||
Summary | 0000283: Invalid locale_t values and LC_GLOBAL_LOCALE | ||||||
Description |
There are two related issues concerning invalid and special locale_t values. 1. It is expected that most implementations of functions such as isalnum_l() will not perform any checking of the locale_t value they are passed for reasons of efficiency. This means the optional EINVAL errors for these functions have exactly the same issue that the optional EINVAL errors for pthread_mutex_lock() and other pthread functions had in SUSv3. If the error condition occurs but is not detected, the intention is that it results in undefined behaviour. This issue was resolved for the pthread functions by removing the optional EINVAL errors and adding statements about undefined behaviour (in cases where there was not one already). The "invalid locale_t" errors should get the same treatment. 2. It is not clear that applications should not pass a locale_t value equal to LC_GLOBAL_LOCALE to any function other than newlocale(). Although the <locale.h> page says: The <locale.h> header shall define LC_GLOBAL_LOCALE, a special locale object descriptor used by the uselocale() function. this is not sufficient. This statement only implies that applications should not use the symbol LC_GLOBAL_LOCALE from that header with other functions, but it is possible for applications to obtain a locale_t value equal to LC_GLOBAL_LOCALE without ever using the symbol, since that value can be returned by a call to uselocale((locale_t)0). Again, on most implementations the affected functions will not check for this value and therefore if it passed to the function the behaviour is undefined. All functions that take a locale_t argument, other than uselocale() and newlocale(), should have a statement added about undefined behaviour if the value is LC_GLOBAL_LOCALE. (No addition is needed for newlocale() because it has such a statement already.) For each function one statement can cover both cases. |
||||||
Desired Action |
At page 743 line 24943 section duplocale, add a new paragraph to the end of the DESCRIPTION The behavior is undefined if the locobj argument is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. At page 921 line 30834 section freelocale, add a new paragraph in the middle of the DESCRIPTION The behavior is undefined if the locobj argument is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. At page 1135 line 37922 section isalnum page 1137 line 37965 section isalpha page 1142 line 38101 section isblank page 1143 line 38142 section iscntrl page 1145 line 38185 section isdigit page 1148 line 38258 section isgraph page 1156 line 38519 section islower page 1160 line 38670 section isprint page 1162 line 38713 section ispunct page 1164 line 38756 section isspace page 1167 line 38837 section isupper page 1169 line 38880 section iswalnum page 1171 line 38928 section iswalpha page 1173 line 38976 section iswblank page 1174 line 39017 section iswcntrl page 1176 line 39067 section iswctype page 1178 line 39151 section iswdigit page 1180 line 39199 section iswgraph page 1182 line 39247 section iswlower page 1184 line 39295 section iswprint page 1186 line 39343 section iswpunct page 1188 line 39391 section iswspace page 1190 line 39439 section iswupper page 1192 line 39487 section iswxdigit page 1194 line 39535 section isxdigit page 1991 line 62993 section strcoll page 1999 line 63255 section strerror page 2011 line 63682 section strftime page 2052 line 64952 section strxfrm page 2126 line 67304 section tolower page 2127 line 67347 section toupper page 2129 line 67395 section towctrans page 2131 line 67445 section towlower page 2133 line 67494 section towupper page 2202 line 69368 section wcscoll page 2242 line 70469 section wcsxfrm page 2247 line 70621 section wctrans page 2249 line 70677 section wctype add a new paragraph to the end of the DESCRIPTION [CX]The behavior is undefined if the locale argument to isalnum_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle.[/CX] (substituting the appropriate function name for isalnum_l). At page 1364 line 44746 section newlocale, change The results are undefined if the base argument is the special locale object LC_GLOBAL_LOCALE. to The behavior is undefined if the base argument is the special locale object LC_GLOBAL_LOCALE, or is not a valid locale object handle and is not (locale_t)0. At page 1375 line 45104 section nl_langinfo page 2004 line 63418 section strfmon add a new paragraph to the end of the DESCRIPTION The behavior is undefined if the locale argument to nl_langinfo_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. (substituting the appropriate function name for nl_langinfo_l). At page 1985 line 62819 section strcasecmp, add a new paragraph to the end of the DESCRIPTION The behavior is undefined if the locale argument to strcasecmp_l() or strncasecmp_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. At page 2197 line 69225 section wcscasecmp, add a new paragraph to the end of the DESCRIPTION The behavior is undefined if the locale argument to wcscasecmp_l() or wcsncasecmp_l() is the special locale object LC_GLOBAL_LOCALE or is not a valid locale object handle. At page 743 line 24952 section duplocale page 1135 line 37928 section isalnum page 1137 line 37971 section isalpha page 1142 line 38107 section isblank page 1143 line 38148 section iscntrl page 1145 line 38191 section isdigit page 1148 line 38264 section isgraph page 1156 line 38525 section islower page 1160 line 38676 section isprint page 1162 line 38719 section ispunct page 1164 line 38762 section isspace page 1167 line 38843 section isupper page 1169 line 38886 section iswalnum page 1171 line 38934 section iswalpha page 1173 line 38982 section iswblank page 1174 line 39023 section iswcntrl page 1176 line 39073 section iswctype page 1178 line 39157 section iswdigit page 1180 line 39205 section iswgraph page 1182 line 39253 section iswlower page 1184 line 39301 section iswprint page 1186 line 39349 section iswpunct page 1188 line 39397 section iswspace page 1190 line 39445 section iswupper page 1192 line 39493 section iswxdigit page 1194 line 39541 section isxdigit page 1375 line 45112 section nl_langinfo page 1985 line 62830 section strcasecmp page 1991 line 63008 section strcoll page 2000 line 63269 section strerror page 2004 line 63428 section strfmon page 2011 line 63690 section strftime page 2052 line 64964 section strxfrm page 2126 line 67311 section tolower page 2127 line 67353 section toupper page 2129 line 67403 section towctrans page 2131 line 67452 section towlower page 2133 line 67501 section towupper page 2197 line 69237 section wcscasecmp page 2202 line 69381 section wcscoll page 2242 line 70481 section wcsxfrm page 2247 line 70632 section wctrans page 2249 line 70684 section wctype delete the locale object "may fail" EINVAL error. If no "may fail" errors remain, delete the preceding text "The [...] function may fail if:". If the ERRORS section is now empty, add "None". |
||||||
Tags | tc1-2008 | ||||||
Attached Files | |||||||
|
Relationships | ||||||
|
Issue History | |||
Date Modified | Username | Field | Change |
2010-07-15 11:17 | geoffclare | New Issue | |
2010-07-15 11:17 | geoffclare | Status | New => Under Review |
2010-07-15 11:17 | geoffclare | Assigned To | => ajosey |
2010-07-15 11:17 | geoffclare | Name | => Geoff Clare |
2010-07-15 11:17 | geoffclare | Organization | => The Open Group |
2010-07-15 11:17 | geoffclare | Section | => isalnum |
2010-07-15 11:17 | geoffclare | Page Number | => 1135 |
2010-07-15 11:17 | geoffclare | Line Number | => 37928 |
2010-07-15 11:17 | geoffclare | Interp Status | => --- |
2010-07-29 16:04 | Don Cragun | Interp Status | --- => Pending |
2010-07-29 16:04 | Don Cragun | Note Added: 0000485 | |
2010-07-29 16:04 | Don Cragun | Status | Under Review => Interpretation Required |
2010-07-29 16:04 | Don Cragun | Resolution | Open => Accepted |
2010-07-29 16:04 | Don Cragun | Desired Action Updated | |
2010-07-29 16:05 | Don Cragun | Final Accepted Text | => See Note: 0000485 |
2010-07-30 09:32 | ajosey | Interp Status | Pending => Proposed |
2010-07-30 09:32 | ajosey | Note Added: 0000512 | |
2010-09-03 06:24 | ajosey | Interp Status | Proposed => Approved |
2010-09-16 16:32 | Don Cragun | Tag Attached: tc1-2008 | |
2010-10-28 15:23 | nick | Relationship added | related to 0000334 |
2013-04-16 13:06 | ajosey | Status | Interpretation Required => Closed |
Mantis 1.1.6[^] Copyright © 2000 - 2008 Mantis Group |