Corinna Vinschen
e185421106
strxfrm/wcsxfrm: Always return length of the transformed string
...
Cygwin's strxfrm/wcsfrm treated a too short output buffer as an error
condition and always returned the size value provided as third parameter.
This is not as it's documented in POSIX.1-2008. Rather, the only error
condition is an invalid input string(*).
Other than that, the functions are supposed to return the length of the
resulting sort key, even if the output buffer is too small. In the latter
case the content of the output array is unspecified, but it's the job
of the application to check that the return value is greater or equal to
the provided buffer size.
(*) We have to make an exception in Cygwin: strxfrm has to call the
UNICODE function LCMapStringW for reasons outlined in a source comment.
If the incoming multibyte string is so large that we fail to malloc
the space required to convert it to a wchar_t string, we have to
ser errno as well since we have nothing to call LCMapStringW with.
* nlsfuncs.cc (wcsxfrm): Fix expression computing offset of
trailing wchar_t NUL. Compute correct return value even if
output buffer is too small.
(strxfrm): Handle failing malloc. Compute correct return value
even if output buffer is too small.
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2016-04-12 15:06:05 +02:00
..
2014-07-14 18:16:16 +00:00
2016-04-04 10:25:32 -05:00
2016-03-20 11:51:43 +01:00
2016-03-24 16:39:15 +01:00
2016-04-04 10:25:34 -05:00
2015-10-20 12:33:13 +02:00
2016-04-05 10:35:05 +02:00
2013-04-30 23:43:08 +00:00
2013-04-23 09:44:36 +00:00
2013-11-24 12:13:36 +00:00
2012-11-23 13:22:47 +00:00
2016-03-23 11:41:26 +01:00
2013-04-23 09:44:36 +00:00
2014-11-25 11:27:12 +00:00
2015-12-03 12:38:19 +01:00
2015-11-18 20:51:12 +01:00
2016-03-29 17:39:17 +02:00
2016-04-01 13:53:25 +02:00
2016-04-04 16:39:41 +02:00
2016-04-04 16:39:41 +02:00
2014-08-11 12:03:18 +00:00
2013-01-21 04:38:31 +00:00
2016-03-23 11:58:21 +01:00
2014-08-15 13:50:53 +00:00
2014-02-10 20:15:58 +00:00
2016-04-01 14:04:09 +02:00
2016-03-12 17:56:21 +01:00
2013-01-21 04:38:31 +00:00
2016-02-13 15:59:55 +01:00
2013-04-23 09:44:36 +00:00
2015-11-27 14:39:11 +01:00
2013-01-21 04:38:31 +00:00
2015-02-23 20:51:12 +00:00
2013-01-21 04:38:31 +00:00
2013-01-21 04:38:31 +00:00
2014-03-12 17:36:56 +00:00
2015-11-27 14:39:11 +01:00
2013-01-21 04:34:52 +00:00
2015-07-29 13:32:29 +02:00
2015-10-23 14:30:40 +02:00
2015-12-02 12:11:06 +01:00
2015-11-27 14:39:11 +01:00
2016-03-20 21:59:47 +01:00
2015-10-27 16:10:37 +00:00
2014-11-26 19:46:59 +00:00
2014-04-08 14:13:59 +00:00
2013-01-21 04:38:31 +00:00
2013-01-21 04:38:31 +00:00
2016-04-01 14:04:09 +02:00
2013-01-21 04:34:52 +00:00
2016-04-01 14:04:09 +02:00
2015-04-23 21:57:12 +02:00
2013-07-15 13:54:27 +00:00
2015-04-23 21:57:12 +02:00
2014-04-26 17:38:22 +00:00
2014-08-22 09:21:33 +00:00
2015-02-11 13:15:59 +00:00
2015-07-29 13:45:46 +02:00
2013-04-23 09:44:36 +00:00
2013-01-21 04:38:31 +00:00
2016-04-01 14:04:09 +02:00
2016-04-01 13:53:25 +02:00
2016-04-01 14:04:09 +02:00
2014-12-02 10:16:03 +00:00
2014-08-15 13:50:53 +00:00
2015-07-07 20:45:06 +02:00
2016-03-24 16:39:15 +01:00
2016-04-01 14:04:09 +02:00
2016-04-05 10:30:28 +02:00
2015-11-05 18:31:36 +01:00
2016-03-30 12:55:42 +02:00
2013-12-10 21:05:23 +00:00
2016-03-20 21:59:43 +01:00
2013-10-31 14:26:42 +00:00
2016-03-20 11:55:08 +01:00
2016-04-05 10:30:28 +02:00
2013-05-01 01:20:37 +00:00
2014-05-20 10:25:32 +00:00
2013-05-01 01:20:37 +00:00
2014-08-19 08:41:40 +00:00
2012-04-04 12:45:24 +00:00
2015-08-29 09:16:47 +02:00
2016-04-05 10:30:28 +02:00
2014-10-09 13:24:37 +00:00
2014-10-09 17:45:27 +00:00
2014-10-09 13:24:37 +00:00
2016-03-18 14:46:20 +01:00
2013-10-26 13:23:54 +00:00
2015-10-22 14:22:07 +02:00
2014-10-20 14:30:35 +00:00
2016-03-24 15:55:25 +01:00
2015-02-25 17:50:13 +00:00
2016-04-05 10:30:28 +02:00
2016-03-08 13:56:40 +01:00
2016-03-08 13:56:40 +01:00
2014-10-09 13:24:37 +00:00
2015-11-27 14:39:11 +01:00
2013-10-24 17:51:41 +00:00
2016-03-20 21:59:43 +01:00
2016-04-05 19:20:10 +02:00
2015-11-27 14:39:11 +01:00
2016-04-01 14:04:09 +02:00
2016-03-24 16:39:15 +01:00
2015-11-28 11:10:41 +01:00
2012-04-02 20:41:46 +00:00
2013-07-10 20:58:33 +00:00
2015-03-03 12:58:34 +00:00
2016-04-01 13:53:25 +02:00
2016-03-24 16:39:15 +01:00
2016-03-24 16:39:15 +01:00
2015-12-16 12:25:27 +01:00
2013-08-31 10:21:48 +00:00
2013-01-21 04:38:31 +00:00
2013-06-14 09:09:41 +00:00
2013-04-23 09:44:36 +00:00
2015-10-27 16:10:37 +00:00
2016-03-29 14:43:55 +02:00
2015-12-02 12:11:06 +01:00
2013-04-23 09:44:36 +00:00
2013-04-23 09:44:36 +00:00
2014-08-27 10:44:50 +00:00
2015-11-18 19:09:47 +01:00
2015-02-26 17:27:59 +00:00
2015-02-24 20:52:57 +00:00
2015-10-27 16:10:37 +00:00
2015-04-23 21:57:08 +02:00
2016-03-30 14:35:46 +02:00
2016-04-01 13:53:25 +02:00
2014-08-14 17:36:24 +00:00
2016-03-29 14:43:55 +02:00
2016-03-24 16:39:15 +01:00
2013-06-18 09:45:37 +00:00
2016-03-18 14:46:20 +01:00
2016-03-18 14:46:20 +01:00
2015-08-17 11:05:43 +02:00
2013-04-23 09:44:36 +00:00
2013-05-21 19:04:49 +00:00
2016-03-30 17:06:50 +02:00
2013-01-21 04:38:31 +00:00
2015-12-03 13:33:43 +01:00
2016-04-01 14:04:09 +02:00
2016-02-09 15:00:30 +01:00
2015-03-03 17:09:30 +00:00
2013-08-26 16:14:40 +00:00
2016-03-24 16:39:15 +01:00
2015-08-18 13:12:07 +02:00
2013-04-23 09:44:36 +00:00
2016-04-12 15:06:05 +02:00
2016-03-09 23:10:17 +01:00
2014-08-27 09:39:44 +00:00
2015-12-16 12:25:27 +01:00
2016-04-05 10:30:28 +02:00
2016-01-27 15:39:11 +01:00
2013-04-23 09:44:36 +00:00
2016-04-05 10:30:28 +02:00
2016-01-11 12:35:41 +01:00
2016-01-11 19:10:45 +01:00
2015-12-07 16:28:22 +01:00
2015-11-27 14:39:11 +01:00
2016-03-24 16:39:15 +01:00
2016-03-24 16:39:15 +01:00
2016-02-17 10:55:28 +01:00
2013-09-25 14:44:45 +00:00
2015-04-23 22:01:53 +02:00
2015-04-23 21:57:12 +02:00
2016-03-29 13:41:11 +02:00
2014-12-02 10:49:47 +00:00
2014-12-02 10:49:47 +00:00
2013-04-23 09:44:36 +00:00
2015-07-29 13:45:46 +02:00
2014-05-20 10:21:34 +00:00
2013-04-23 09:44:36 +00:00
2016-03-13 16:02:55 +01:00
2016-03-23 17:40:24 +01:00
2016-03-12 17:56:21 +01:00
2016-03-10 10:36:00 +01:00
2016-03-08 13:56:40 +01:00
2016-03-08 13:56:40 +01:00
2016-03-12 16:39:19 +01:00
2016-03-20 21:59:47 +01:00
2016-03-20 21:59:47 +01:00
2015-03-03 17:09:30 +00:00
2014-03-28 20:34:04 +00:00
2014-10-17 14:36:59 +00:00
2014-11-27 16:49:41 +00:00
2016-03-29 12:14:18 +02:00
2016-04-05 10:30:28 +02:00
2016-04-05 10:30:28 +02:00
2014-03-17 04:41:35 +00:00
2015-07-29 13:45:46 +02:00
2016-04-01 13:53:25 +02:00
2013-04-23 09:44:36 +00:00
2013-05-22 16:55:55 +00:00
2015-07-29 13:45:46 +02:00
2016-04-01 14:04:09 +02:00
2014-08-18 18:24:06 +00:00
2016-02-18 08:20:03 -06:00
2013-04-23 09:44:36 +00:00
2013-04-23 09:44:36 +00:00
2016-04-01 14:04:09 +02:00
2016-04-04 10:25:36 -05:00
2013-04-23 09:44:36 +00:00
2013-04-23 09:44:36 +00:00
2014-11-25 11:27:12 +00:00
2013-04-23 09:44:36 +00:00
2016-03-20 12:19:35 +01:00
2016-02-13 16:03:15 +01:00
2014-08-22 09:21:33 +00:00
2016-04-05 10:30:28 +02:00
2014-08-25 14:53:49 +00:00
2014-08-25 14:53:49 +00:00
2015-07-04 22:49:30 +02:00
2015-07-04 22:49:30 +02:00
2015-04-23 21:57:07 +02:00
2015-04-23 22:04:24 +02:00
2016-03-23 17:51:03 +01:00
2015-12-07 16:28:22 +01:00
2013-07-31 15:19:18 +00:00
2015-02-24 20:52:57 +00:00
2013-04-23 09:44:36 +00:00
2016-01-08 15:17:52 +01:00
2016-03-09 23:10:17 +01:00
2016-02-18 11:22:12 +01:00
2013-11-24 12:13:36 +00:00
2015-02-11 13:15:59 +00:00
2015-02-11 13:15:59 +00:00
2013-01-21 04:34:52 +00:00
2015-11-18 22:28:33 +01:00
2016-04-01 13:53:25 +02:00
2015-02-03 13:15:49 +00:00
2015-12-07 16:10:55 +01:00
2015-12-07 16:10:55 +01:00
2016-03-29 14:43:55 +02:00