Bruce Momjian <[EMAIL PROTECTED]> writes: > + /* > + * Escape any single quotes or backslashes in locale > + */ > + static void > + escape_locale(char **locale) > + { > + int len = strlen(*locale), > + i, j; > + char *loc_temp = xmalloc(len * 2); > + > + for (i = 0, j = 0; i < len; i++) > + { > + if ((*locale)[i] == '\'' || (*locale)[i] == '\\') > + loc_temp[j++] = '\\'; > + loc_temp[j++] = (*locale)[i]; > + } > + *locale = loc_temp; > + }
Surely this is quite broken. You need to xmalloc one more byte and add a '\0'. regards, tom lane ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faqs/FAQ.html