]> granicus.if.org Git - postgresql/commitdiff
Fix psql crash while parsing SQL file whose encoding is different from
authorTatsuo Ishii <ishii@postgresql.org>
Sun, 2 Dec 2012 12:11:15 +0000 (21:11 +0900)
committerTatsuo Ishii <ishii@postgresql.org>
Sun, 2 Dec 2012 12:21:01 +0000 (21:21 +0900)
client encoding and the client encoding is not *safe* one. Such an
example is, file encoding is UTF-8 and client encoding SJIS. Patch
contributed by Jiang Guiqing.

src/bin/psql/psqlscan.l

index 1208c8f475cac29ff38016d0ef867682e9a3a7d9..a3d569f13dbedf6895955dd68524f8f998b5084f 100644 (file)
@@ -1807,7 +1807,7 @@ prepare_buffer(const char *txt, int len, char **txtcopy)
                        /* first byte should always be okay... */
                        newtxt[i] = txt[i];
                        i++;
-                       while (--thislen > 0)
+                       while (--thislen > 0 && i < len)
                                newtxt[i++] = (char) 0xFF;
                }
        }