bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libiberty vasprintf bug, doesn't handle long longs


From: Doug Evans
Subject: libiberty vasprintf bug, doesn't handle long longs
Date: Tue, 10 Jan 2006 09:27:14 -0800

Who owns libiberty?  Do I file a bugzilla for binutils or gcc or ?

vasprintf doesn't watch for long longs so the va_arg() calls
can get out of sync with what's passed.

diff -u -p -r1.2 vasprintf.c
--- vasprintf.c 19 Oct 2005 01:28:44 -0000      1.2
+++ vasprintf.c 10 Jan 2006 17:02:27 -0000
@@ -199,6 +199,7 @@ main ()
   checkit ("%s", "jjjjjjjjjiiiiiiiiiiiiiiioooooooooooooooooppppppppppppaa\n\
 777777777777777777333333333333366666666666622222222222777777777777733333");
   checkit ("%f%s%d%s", 1.0, "foo", 77, "asdjffffffffffffffiiiiiiiiiiixxxxx");
+  checkit ("%lld%s", (long long) 1, "foo");
 
   return 0;
 }

gcc -DTEST -g -m32 vasprintf.c
./a.out
PASS: 33 305419896
PASS: 236                                                                       
                                                                                
                                                 5
PASS: 337 
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006
PASS: 290 
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
PASS: 161 jjjjjjjjjiiiiiiiiiiiiiiioooooooooooooooooppppppppppppaa
777777777777777777333333333333366666666666622222222222777777777777733333
PASS: 473 1.000000foo77asdjffffffffffffffiiiiiiiiiiixxxxx
Segmentation fault




reply via email to

[Prev in Thread] Current Thread [Next in Thread]