Le 12 avr. 05, à 08:23, Rémi Zara a écrit :

Hi,

With the following patch, the crash still occurs in the same way. But it does seem, reading the code, that it still may be necessary.

Well, I've re-run the checks several times after a clean make and it does not crash anymore. So the patch seems to help !

Please consider applying it.

Regards,

Rém Zara

RCS file: /projects/cvsroot/pgsql/src/port/snprintf.c,v
retrieving revision 1.26
diff -u -r1.26 snprintf.c
--- snprintf.c  20 Mar 2005 13:54:53 -0000      1.26
+++ snprintf.c  12 Apr 2005 06:08:02 -0000
@@ -222,7 +222,7 @@

/* Create enough structures to hold all arguments */
for (p = format; *p != '\0'; p++)
- if (*p == '%') /* counts %% as two, so overcounts */
+ if ((*p == '%') || (*p == '*')) /* counts %% as two, so overcounts */
percents++;

/* Need to use malloc() because memory system might not be started yet. */

Regards,

Rémi Zara

Le 11 avr. 05, à 22:31, Tom Lane a écrit :

=?ISO-8859-1?Q?R=E9mi_Zara?= <[EMAIL PROTECTED]> writes:
The crash occurs in pg_sprintf, work on which has been done beginning
march 11th....

Offhand I'd bet it's overrunning its malloc'd arrays because the loop at
the top doesn't count "*" as needing a fmtpos position.

                        regards, tom lane


--
Rémi Zara
http://www.remi-zara.net/

--
Rémi Zara
http://www.remi-zara.net/

Attachment: smime.p7s
Description: S/MIME cryptographic signature



Reply via email to