Package: libstdc++5 Version: 1:3.3.2-1 Severity: normal In libstdc++5-3.3.2 large file support has disappeared (with respect to libstdc++2.10-glibc2.2).
C++ applications that manipulate large files, recompiled with g++-3.3, might cause massive data corruption, unless they carefully test streams for goodness before reading/writing. The gcc team has fixed the bug, and the fix will ship with the 3.4 release. See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8610 for reference. Some code to show the bug: # build a large file that actually occupies only a few disk blocks $ echo 12 > large_file $ dd if=/dev/zero of=large_file bs=1k count=1 seek=3000k conv=notrunc # make C++ code for reading it: $ cat > testlfs.cc <<EOF #include <fstream> #include <iostream> int main() { int i = -1; std::ifstream f("large_file"); std::cout << "File is good? " << f.good() << std::endl; if ( f.good() ) f >> i; std::cout << "Value of i? " << i << std::endl; } EOF # try different libraries: $ g++-3.3 -Wall -D_FILE_OFFSET_BITS=64 testlfs.cc -o testlfs-3; ./testlfs-3 File is good? 0 Value of i? -1 $ g++-2.95 -Wall -D_FILE_OFFSET_BITS=64 testlfs.cc -o testlfs-2; ./testlfs-2 File is good? 1 Value of i? 12 -- System Information: Debian Release: testing/unstable Architecture: i386 Kernel: Linux bonacci 2.4.22-1-686 #6 Sat Oct 4 14:09:08 EST 2003 i686 Locale: LANG=C, LC_CTYPE=C Versions of packages libstdc++5 depends on: ii gcc-3.3-base 1:3.3.2-1 The GNU Compiler Collection (base ii libc6 2.3.2-9 GNU C Library: Shared libraries an ii libgcc1 1:3.3.2-1 GCC support library -- no debconf information