Thread: Oops in snprintf.c

Oops in snprintf.c

From
"Taral"
Date:
I think I mentioned this before, but no-one fixed it... The variable 'value'
is being assigned a long_long when %ll is being used, but value is only a
'long'... Don'tcha wish there were type-checking for va_arg?

Enjoy.

Taral

*** ./backend/port/snprintf.c.orig      Wed Oct  7 17:15:04 1998
--- ./backend/port/snprintf.c   Wed Oct  7 17:16:07 1998
***************
*** 130,136 ****
--- 130,140 ----
  dopr(char *buffer, const char *format,...)
  {
        int                     ch;
+ #ifdef HAVE_LONG_INT_64
+       long_long       value;
+ #else
        long            value;
+ #endif
        int                     longflag = 0;
        int                     longlongflag = 0;
        int                     pointflag = 0;


Re: [HACKERS] Oops in snprintf.c

From
Bruce Momjian
Date:
[Charset iso-8859-1 unsupported, filtering to ASCII...]
> I think I mentioned this before, but no-one fixed it... The variable 'value'
> is being assigned a long_long when %ll is being used, but value is only a
> 'long'... Don'tcha wish there were type-checking for va_arg?
>
> Enjoy.
>
> Taral
>
> *** ./backend/port/snprintf.c.orig      Wed Oct  7 17:15:04 1998
> --- ./backend/port/snprintf.c   Wed Oct  7 17:16:07 1998
> ***************
> *** 130,136 ****
> --- 130,140 ----
>   dopr(char *buffer, const char *format,...)
>   {
>         int                     ch;
> + #ifdef HAVE_LONG_INT_64
> +       long_long       value;
> + #else
>         long            value;
> + #endif
>         int                     longflag = 0;
>         int                     longlongflag = 0;
>         int                     pointflag = 0;
>
>
>

It is more compilcated than that.  You have to fix fmtnum too.  I have
applied a patch.  Let me know how it works.

--
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@candle.pha.pa.us            |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026