From 0d99c95388a7edc4ddb8897776e80de00944ded0 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 25 Apr 1999 20:35:51 +0000
Subject: [PATCH] Correct potential infinite loop in pg_utf2wchar_with_len; it
 failed to cover the case where high bits of char are 100 or 101. Not sure if
 fix is right, but it agrees with pg_utf_mblen ... and it doesn't lock up ...

---
 src/backend/utils/mb/wchar.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/backend/utils/mb/wchar.c b/src/backend/utils/mb/wchar.c
index 78f22c15ebc..2fc856d1b5d 100644
--- a/src/backend/utils/mb/wchar.c
+++ b/src/backend/utils/mb/wchar.c
@@ -1,7 +1,7 @@
 /*
  * conversion functions between pg_wchar and multi-byte streams.
  * Tatsuo Ishii
- * $Id: wchar.c,v 1.6 1999/03/24 07:02:17 ishii Exp $
+ * $Id: wchar.c,v 1.7 1999/04/25 20:35:51 tgl Exp $
  */
 
 #include "mb/pg_wchar.h"
@@ -268,6 +268,11 @@ pg_utf2wchar_with_len(const unsigned char *from, pg_wchar * to, int len)
 			*to |= c2 << 6;
 			*to |= c3;
 		}
+		else
+		{
+			*to = *from++;
+			len--;
+		}
 		to++;
 	}
 	*to = 0;
-- 
GitLab