1# 2# [USEMAP] 3# 4# Problem Report gnu/7821 5# 6# awk in free(): warning: chunk is already free. 7# 8# Confidential 9# no 10# 11# Severity 12# serious 13# 14# Priority 15# medium 16# 17# Responsible 18# freebsd-bugs@freebsd.org 19# 20# State 21# suspended 22# 23# Class 24# sw-bug 25# 26# Submitter-Id 27# current-users 28# 29# Arrival-Date 30# Thu Sep 3 10:30:00 PDT 1998 31# 32# Last-Modified 33# Thu Sep 17 02:04:26 PDT 1998 34# 35# Originator 36# Alexander Litvin archer@lucky.net 37# 38# Organization 39# 40# 41#Lucky Net ltd. 42# 43# Release 44# FreeBSD 3.0-CURRENT i386 45# 46# Environment 47# 48# 49#FreeBSD grape.carrier.kiev.ua 3.0-CURRENT FreeBSD 3.0-CURRENT #121: Thu Sep 3 50#1 51#1:21:44 EEST 1998 archer@grape.carrier.kiev.ua:/usr/src/sys/compile/GRAPE 52#i 53#386 54# 55# Description 56# 57# 58#The problem first appeared when GNU awk in 3.0-CURRENT was apgraded to 59#3.0.3. I run C-News, which uses awk extensively. After awk apgrade C-News 60#expire stopped to work. It appeared that some GNU awk 3.0.3 programms when 61#given absolutely legitimate input fail, giving out a number of messages: 62# 63#awk in free(): warning: chunk is already free. 64# 65# How-To-Repeat 66# 67# 68#Run the following awk program (it is cut out of C-News expire scripts). 69#I was not able to cut it down more -- omitting some portions of the 70#code (e.g. OFMT line), make error go away in this case, though it 71#certainly does not fix awk. 72# 73#----------------cut-here---------------- 74#!/usr/bin/awk -f 75BEGIN { 76 OFMT = "%.12g" 77 big = 99999999999 78 lowest = big 79 small = 0 80 highest = small 81} 82 83$0 ~ /^[0-9]+$/ { 84 if ($1 < lowest) 85 lowest = $1 86 if ($1 > highest) 87 highest = $1 88 next 89} 90 91# $0 ~ /^[a-z]+/ { 92$0 ~ /^[[:lower:]]+/ { 93 print dir, highest, lowest 94 dir = $0 95 lowest = big 96 highest = small 97} 98#----------------cut-here---------------- 99# 100#To get the error, just give this script the following input: 101#----------------cut-here---------------- 102#a 103#1 104#b 105#----------------cut-here---------------- 106# 107# Fix 108# 109# 110#I was not able to track the error in awk sources. As a workaround, 111#I just reverted to GNU awk 2.15.5. 112# 113# Audit-Trail 114# 115# 116#State-Changed-From-To: open-suspended 117#State-Changed-By: phk 118#State-Changed-When: Thu Sep 17 02:04:08 PDT 1998 119#State-Changed-Why: 120#reported to GNU maintainer. 121# 122# Submit Followup 123# _________________________________________________________________ 124# 125# 126# www@freebsd.org 127