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?= <remi_zara@mac.com> 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/