Repair coredump in COPY OUT when client encoding is different from
authorTom Lane <[email protected]>
Sun, 1 Dec 2002 17:33:33 +0000 (17:33 +0000)
committerTom Lane <[email protected]>
Sun, 1 Dec 2002 17:33:33 +0000 (17:33 +0000)
server encoding, per report from Nicolai Tufar.  This is a minimum-risk
patch for 7.3.1 --- I intend to apply a more general repair in HEAD.

src/backend/commands/copy.c

index ba72dbf83973a27557f983ba5ad751d9f58256af..2c1b263583b2e55433305f913f31d51097485b1a 100644 (file)
@@ -1470,9 +1470,8 @@ CopyAttributeOut(FILE *fp, char *server_string, char *delim)
        char       *string;
        char            c;
        char            delimc = delim[0];
-
        bool            same_encoding;
-       char       *string_start;
+       char       *string_start = NULL;
        int                     mblen;
        int                     i;
 
@@ -1481,12 +1480,12 @@ CopyAttributeOut(FILE *fp, char *server_string, char *delim)
        {
                string = (char *) pg_server_to_client((unsigned char *) server_string,
                                                                                          strlen(server_string));
-               string_start = string;
+               if (string != server_string)
+                       string_start = string;
        }
        else
        {
                string = server_string;
-               string_start = NULL;
        }
 
        for (; (c = *string) != '\0'; string += mblen)