Blame test/ofmtbig.awk

Packit Service f629e6
#
Packit Service f629e6
#   [USEMAP]
Packit Service f629e6
#   
Packit Service f629e6
#                            Problem Report gnu/7821
Packit Service f629e6
#                                       
Packit Service f629e6
#   awk in free(): warning: chunk is already free.
Packit Service f629e6
#   
Packit Service f629e6
#   Confidential
Packit Service f629e6
#          no
Packit Service f629e6
#          
Packit Service f629e6
#   Severity
Packit Service f629e6
#          serious
Packit Service f629e6
#          
Packit Service f629e6
#   Priority
Packit Service f629e6
#          medium
Packit Service f629e6
#          
Packit Service f629e6
#   Responsible
Packit Service f629e6
#          freebsd-bugs@freebsd.org
Packit Service f629e6
#          
Packit Service f629e6
#   State
Packit Service f629e6
#          suspended
Packit Service f629e6
#          
Packit Service f629e6
#   Class
Packit Service f629e6
#          sw-bug
Packit Service f629e6
#          
Packit Service f629e6
#   Submitter-Id
Packit Service f629e6
#          current-users
Packit Service f629e6
#          
Packit Service f629e6
#   Arrival-Date
Packit Service f629e6
#          Thu Sep 3 10:30:00 PDT 1998
Packit Service f629e6
#          
Packit Service f629e6
#   Last-Modified
Packit Service f629e6
#          Thu Sep 17 02:04:26 PDT 1998
Packit Service f629e6
#          
Packit Service f629e6
#   Originator
Packit Service f629e6
#          Alexander Litvin archer@lucky.net
Packit Service f629e6
#          
Packit Service f629e6
#   Organization
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#Lucky Net ltd.
Packit Service f629e6
#
Packit Service f629e6
#   Release
Packit Service f629e6
#          FreeBSD 3.0-CURRENT i386
Packit Service f629e6
#          
Packit Service f629e6
#   Environment
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#FreeBSD grape.carrier.kiev.ua 3.0-CURRENT FreeBSD 3.0-CURRENT #121: Thu Sep  3
Packit Service f629e6
#1
Packit Service f629e6
#1:21:44 EEST 1998     archer@grape.carrier.kiev.ua:/usr/src/sys/compile/GRAPE
Packit Service f629e6
#i
Packit Service f629e6
#386
Packit Service f629e6
#
Packit Service f629e6
#   Description
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#The problem first appeared when GNU awk in 3.0-CURRENT was apgraded to
Packit Service f629e6
#3.0.3. I run C-News, which uses awk extensively. After awk apgrade C-News
Packit Service f629e6
#expire stopped to work. It appeared that some GNU awk 3.0.3 programms when
Packit Service f629e6
#given absolutely legitimate input fail, giving out a number of messages:
Packit Service f629e6
#
Packit Service f629e6
#awk in free(): warning: chunk is already free.
Packit Service f629e6
#
Packit Service f629e6
#   How-To-Repeat
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#Run the following awk program (it is cut out of C-News expire scripts).
Packit Service f629e6
#I was not able to cut it down more -- omitting some portions of the
Packit Service f629e6
#code (e.g. OFMT line), make error go away in this case, though it
Packit Service f629e6
#certainly does not fix awk.
Packit Service f629e6
#
Packit Service f629e6
#----------------cut-here----------------
Packit Service f629e6
#!/usr/bin/awk -f
Packit Service f629e6
BEGIN {
Packit Service f629e6
        OFMT = "%.12g"
Packit Service f629e6
        big = 99999999999
Packit Service f629e6
        lowest = big
Packit Service f629e6
        small = 0
Packit Service f629e6
        highest = small
Packit Service f629e6
}
Packit Service f629e6
Packit Service f629e6
$0 ~ /^[0-9]+$/ {
Packit Service f629e6
        if ($1 < lowest)
Packit Service f629e6
                lowest = $1
Packit Service f629e6
        if ($1 > highest)
Packit Service f629e6
                highest = $1
Packit Service f629e6
        next
Packit Service f629e6
}
Packit Service f629e6
Packit Service f629e6
# $0 ~ /^[a-z]+/ {
Packit Service f629e6
$0 ~ /^[[:lower:]]+/ {
Packit Service f629e6
        print dir, highest, lowest
Packit Service f629e6
        dir = $0
Packit Service f629e6
        lowest = big
Packit Service f629e6
        highest = small
Packit Service f629e6
}
Packit Service f629e6
#----------------cut-here----------------
Packit Service f629e6
#
Packit Service f629e6
#To get the error, just give this script the following input:
Packit Service f629e6
#----------------cut-here----------------
Packit Service f629e6
#a
Packit Service f629e6
#1
Packit Service f629e6
#b
Packit Service f629e6
#----------------cut-here----------------
Packit Service f629e6
#
Packit Service f629e6
#   Fix
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#I was not able to track the error in awk sources. As a workaround,
Packit Service f629e6
#I just reverted to GNU awk 2.15.5.
Packit Service f629e6
#
Packit Service f629e6
#   Audit-Trail
Packit Service f629e6
#          
Packit Service f629e6
#
Packit Service f629e6
#State-Changed-From-To: open-suspended
Packit Service f629e6
#State-Changed-By: phk
Packit Service f629e6
#State-Changed-When: Thu Sep 17 02:04:08 PDT 1998
Packit Service f629e6
#State-Changed-Why:
Packit Service f629e6
#reported to GNU maintainer.
Packit Service f629e6
#
Packit Service f629e6
#   Submit Followup
Packit Service f629e6
#     _________________________________________________________________
Packit Service f629e6
#                                      
Packit Service f629e6
#   
Packit Service f629e6
#    www@freebsd.org