result_size = wchar2char(result, workspace, max_size + 1, locale);
- if (result_size + 1 > destsize)
- return result_size;
-
- memcpy(dest, result, result_size);
- dest[result_size] = '\0';
+ if (destsize >= result_size + 1)
+ {
+ memcpy(dest, result, result_size);
+ dest[result_size] = '\0';
+ }
pfree(workspace);
pfree(result);
result_size = wchar2char(result, workspace, max_size + 1, locale);
- if (result_size + 1 > destsize)
- return result_size;
-
- memcpy(dest, result, result_size);
- dest[result_size] = '\0';
+ if (destsize >= result_size + 1)
+ {
+ memcpy(dest, result, result_size);
+ dest[result_size] = '\0';
+ }
pfree(workspace);
pfree(result);
result_size = wchar2char(result, workspace, max_size + 1, locale);
- if (result_size + 1 > destsize)
- return result_size;
-
- memcpy(dest, result, result_size);
- dest[result_size] = '\0';
+ if (destsize >= result_size + 1)
+ {
+ memcpy(dest, result, result_size);
+ dest[result_size] = '\0';
+ }
pfree(workspace);
pfree(result);