Package: bash Version: 4.0-7 Severity: normal
Hi, I'm happy to report that I may have duplicated this bug with version 4.0-7 and a much smaller script. I'll try to attach it to this bug report. The error message I get is malloc: ../bash/subst.c:4198: assertion botched realloc: start and end chunk sizes differ Aborting...tmp/bug: line 283: 9468 Done 9469 Aborted (core dumped) The thing I find worrisome about this bug is that, at least for me, it doesn't stop the entire script. It evidently only crashes a sub-shell. So unless users happen to look at log files for something like "core dumped", we may have no clue that our data is corrupted. I humbly suggest running my smaller script with something like valgrind, or with gdb with a version of bash with debugging symbols. Have fun! Kingsley -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (990, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.25-2-686 (SMP w/2 CPU cores) Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Shell: /bin/sh linked to /bin/bash Versions of packages bash depends on: ii base-files 4.0.4 Debian base system miscellaneous f ii dash 0.5.5.1-3 POSIX-compliant shell ii debianutils 2.30 Miscellaneous utilities specific t ii libc6 2.9-6 GNU C Library: Shared libraries ii libncurses5 5.7+20090314-1 shared libraries for terminal hand Versions of packages bash recommends: ii bash-completion 20080705 programmable completion for the ba Versions of packages bash suggests: ii bash-doc 4.0-7 Documentation and examples for the -- no debconf information
echo $SHELL # The ten lines of code that crash Debian Linux's version 4.0-7 of bash are at the end of this file. # I suspect they'd also crash version 3.2-4. # # Running this script gives me... # # /bin/bash # # malloc: ../bash/subst.c:4198: assertion botched # realloc: start and end chunk sizes differ # Aborting...tmp/bug: line 262: 5253 Done echo "$v" # 5254 Aborted (core dumped) | while read d; do # while read c; do # :; # done < <(echo a); # done # # # This looks similar to # # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=417946 # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=403467 read -d '' v <<EOF 010.4 074.67 37.33 3616 40.82 2099 023.7 000382 000382 205.01 205.01 0866 0155.1 0623 111.58 3000 0960 240 240 10.4 104 9.4 94 3900 44.031 2050 23.144 7 7 7 7 400 400 395 395 390 390 385 385 380 380 375 375 370 370 365 365 360 360 355 355 350 350 345 345 340 340 335 335 330 330 325 325 320 320 315 315 310 310 305 305 300 300 295 295 290 290 285 285 280 280 275 275 270 270 265 265 260 260 255 255 250 250 245 245 240 240 235 235 230 180 175 175 170 170 165 165 160 160 155 155 150 150 145 145 140 140 135 135 130 130 125 125 120 120 115 115 110 110 105 105 100 100 95 95 90 90 85 85 80 80 75 75 70 70 65 65 60 60 55 55 50 50 45 45 40 40 35 35 30 30 25 25 20 20 15 15 10 10 5 5 0 0 5 5 370 365 365 360 360 355 355 350 350 345 345 340 340 335 335 330 330 325 325 320 320 315 315 310 310 305 305 300 300 295 295 290 290 285 285 280 280 275 275 270 270 265 265 260 260 255 255 250 250 245 245 240 240 235 235 230 130 125 110 110 105 105 200 200 13189 682.1 60.3 554.3 0049 2498.899 025.321 85.5436 36.8847 450.9854 08717.988 87.5753 77.4046 63.1502 13.6946 EOF f(){ echo "$v" | while read d ; do while read c ; do : done < <(echo a) done } f b