[Top][All Lists]
[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
- libiberty vasprintf bug, doesn't handle long longs,
Doug Evans <=