OSDN Git Service

Correct potential infinite loop in pg_utf2wchar_with_len;
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Apr 1999 20:35:51 +0000 (20:35 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 25 Apr 1999 20:35:51 +0000 (20:35 +0000)
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

index 78f22c1..2fc856d 100644 (file)
@@ -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;