diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c index 1755be5ebfa4e30def40aedd647232de97f74b3f..54581cd12a5e98a97b0593b8d74e1db8aa26a1f6 100644 --- a/src/backend/utils/mb/wchar.c +++ b/src/backend/utils/mb/wchar.c @@ -380,6 +380,7 @@ pg_wchar2euc_with_len(const pg_wchar *from, unsigned char *to, int len) *to++ = *from; cnt++; } + from++; len--; } *to = 0; @@ -518,9 +519,10 @@ pg_wchar2utf_with_len(const pg_wchar *from, unsigned char *to, int len) unicode_to_utf8(*from, to); char_len = pg_utf_mblen(to); - len--; cnt += char_len; to += char_len; + from++; + len--; } *to = 0; return cnt; @@ -854,6 +856,7 @@ pg_wchar2mule_with_len(const pg_wchar *from, unsigned char *to, int len) *to++ = lb; cnt += 1; } + from++; len--; } *to = 0;