forked from OSchip/llvm-project
Commit D11348: 'Win32 support: wcsnrtombs and mbsnrtowcs don't handle null output buffers correctly' which has been hanging around for a long time
llvm-svn: 351971
This commit is contained in:
parent
aa0e74c1fc
commit
8681a3bc85
|
@ -61,6 +61,11 @@ size_t mbsnrtowcs( wchar_t *__restrict dst, const char **__restrict src,
|
|||
size_t result = 0;
|
||||
bool have_result = false;
|
||||
|
||||
// If dst is null then max_dest_chars should be ignored according to the
|
||||
// standard. Setting max_dest_chars to a large value has this effect.
|
||||
if (!dst)
|
||||
max_dest_chars = static_cast<size_t>(-1);
|
||||
|
||||
while ( source_remaining ) {
|
||||
if ( dst && dest_converted >= max_dest_chars )
|
||||
break;
|
||||
|
@ -114,6 +119,11 @@ size_t wcsnrtombs( char *__restrict dst, const wchar_t **__restrict src,
|
|||
bool have_result = false;
|
||||
bool terminator_found = false;
|
||||
|
||||
// If dst is null then dst_size_bytes should be ignored according to the
|
||||
// standard. Setting dest_remaining to a large value has this effect.
|
||||
if (!dst)
|
||||
dest_remaining = static_cast<size_t>(-1);
|
||||
|
||||
while ( source_converted != max_source_chars ) {
|
||||
if ( ! dest_remaining )
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue