[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gawk on suse 10.1 (was [Fwd: [suse-security] Puzzled with gawk])
From: |
Aharon Robbins |
Subject: |
Re: gawk on suse 10.1 (was [Fwd: [suse-security] Puzzled with gawk]) |
Date: |
Fri, 21 Jul 2006 18:11:03 +0300 |
The problem can be "fixed" by moving to the "C" locale:
export LC_ALL="C" # in your .bash_profile or .profile file
I have already fixed my development version to work in other locales.
If you cannot change your locale for other reasons, then I will try to
produce a patch for you.
Thanks,
Arnold
> Date: Thu, 20 Jul 2006 16:03:24 +0200 (CEST)
> From: Pablo Costa <address@hidden>
> Subject: gawk on suse 10.1 (was [Fwd: [suse-security] Puzzled with gawk])
> To: address@hidden
>
> Hello gawk people!
>
> I am having some problems with gawk on Suse 10.1 machines.
>
> I have tried several Suse 10.1 installations and it fails consistently. On
> other distributions (gentoo, RedHat EL-ES) and MacOS X, everything runs as
> expected.
>
> Under Suse 10.1:
>
> fails: gawk 3.1.5 shipped with suse 10.1
> fails: gawk 3.1.5 dowloaded from official site, ./configure;make
> works: gawk 3.1.4 downloaded from official site, ./configure;make
>
> I want to solve this issue. I am about to find differences between 3.1.5
> and 3.1.4 sources trying to isolate the involved lines, but maybe someone
> behind 'bug-gawk' (Arnold?) will have a clue at a first glance.
>
> Thank you for your help!
> And thank you very much for all those years behind gawk!
> Pablo
>
> ---------------------------- Original Message ----------------------------
> Subject: [suse-security] Puzzled with gawk
> From: "Pablo" <address@hidden>
> Date: Wed, June 28, 2006 1:43 pm
> To: address@hidden
> --------------------------------------------------------------------------
>
> Hello there,
>
> I've just found a rather weird problem on my opensuse10.1 box.
>
> I've produced a simple awk script and a sample input file which makes gawk
> crash on my 10.1, while it works as expected on my gentoo. I got also what
> I would expect on non-gnu awk running under Mac OS X.
>
> I would really appreciate if someone ran my script under 10.1 and tried to
> reproduce the error. It's a one minute task: I've arranged everything
> below so you can run it on your ~/tmp with a single copy/paste, if you
> feel like giving it a try.
>
> Maybe I'm not seeing the obvious, I would expect a broken awk build to
> cause lots of trouble on my system, but this sample script is quite
> tricky.
> So I would appreciate if someone confirms the odd behaviour or has any
> clue before I go on with further testing.
>
>
> $ uname -a
> Linux 2.6.16.13-4-smp #1 SMP Wed May 3 04:53:23 UTC 2006 i686 i686
> i386 GNU/Linux
> $ rpm -qa | grep awk
> gawk-3.1.5-18
> $ gawk --version | head -n 1
> GNU Awk 3.1.5
>
>
> Thank you for getting so far, and thank you very much if you choose to
> go on ;)
> Kind regards.
> Pablo
>
>
> -8<-------------cut here---------------------
> #skip this if your CWD is a better place for two temp files ;)
> cd ~/tmp
>
>
> # the script; PLEASE take care if you copy on your own file
> # to remove the BACKSLASH just before the DOLLAR; It's
> # there to prevent the shell from evaluating $i when copy/pasting. cat >
> problem.awk <<-EOF
> {
> print "RECORD " NR;
> for ( i = 0; length( \$i ) > 0; i++ ) print " FIELD " i " of " NF;
> }
> EOF
>
> # It doesn't seem to really matter what kind of input you
> # give to the script. Also it doesn't matter if it's given
> # on a file via gawk command line invocation or if it's fed
> # via stdin through a pipe.
> cat > awk_example <<EOF
> drwxr-xr-x 2 pablo users 112 2006-06-20 19:29 .
> drwxr-xr-x 3 pablo users 248 2006-06-20 19:26 ..
> -rw-r--r-- 1 pablo users 0 2006-06-20 19:43 awk_example
> -rw-r--r-- 1 pablo users 91 2006-06-20 19:37 problem.awk
> drwxr-xr-x 2 pablo users 112 2006-06-20 19:29 .
> drwxr-xr-x 3 pablo users 248 2006-06-20 19:26 ..
> -rw-r--r-- 1 pablo users 0 2006-06-20 19:43 awk_example
> -rw-r--r-- 1 pablo users 91 2006-06-20 19:37 problem.awk
> EOF
>
> # Unleash hell!
> gawk -f problem.awk awk_example
>
> -8<-------------cut here---------------------
>
> This is the expected output (what I get on my Gentoo's gawk and on my
> Mac OS X's awk):
>
> $ gawk -f problem.awk awk_example
> RECORD 1
> FIELD 0 of 8
> FIELD 1 of 8
> FIELD 2 of 8
> FIELD 3 of 8
> FIELD 4 of 8
> FIELD 5 of 8
> FIELD 6 of 8
> FIELD 7 of 8
> FIELD 8 of 8
> [... records 2 to 7 ...]
> RECORD 8
> FIELD 0 of 8
> FIELD 1 of 8
> FIELD 2 of 8
> FIELD 3 of 8
> FIELD 4 of 8
> FIELD 5 of 8
> FIELD 6 of 8
> FIELD 7 of 8
> FIELD 8 of 8
>
> This is what I get on my opensuse10.1:
>
> $ gawk -f problem.awk awk_example
> RECORD 1
> FIELD 0 of 8
> FIELD 1 of 8
> FIELD 2 of 8
> FIELD 3 of 8
> FIELD 4 of 8
> FIELD 5 of 8
> FIELD 6 of 8
> FIELD 7 of 8
> FIELD 8 of 8
> RECORD 2
> FIELD 0 of 8
> FIELD 1 of 8
> FIELD 2 of 8
> *** glibc detected *** gawk: double free or corruption (fasttop):
> 0x08089be0 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0xb7e80911]
> /lib/libc.so.6(__libc_free+0x84)[0xb7e81f84]
> gawk(str2wstr+0x37)[0x806f2dd]
> gawk(do_length+0x1f3)[0x8056c73]
> gawk(r_tree_eval+0x3a2)[0x80742f2]
> gawk(r_tree_eval+0x75)[0x8073fc5]
> gawk[0x8075d12]
> gawk(interpret+0x2c6)[0x80727e6]
> gawk(interpret+0x221)[0x8072741]
> gawk(interpret+0x1b1)[0x80726d1]
> gawk(do_input+0x33)[0x806a743]
> gawk(main+0x79b)[0x806e33b]
> /lib/libc.so.6(__libc_start_main+0xdc)[0xb7e3287c]
> gawk[0x804c9b1]
> ======= Memory map: ========
> 08048000-08082000 r-xp 00000000 03:01 431340 /bin/gawk
> 08082000-08083000 rw-p 0003a000 03:01 431340 /bin/gawk
> 08083000-080a9000 rw-p 08083000 00:00 0 [heap]
> b7b00000-b7b21000 rw-p b7b00000 00:00 0
> b7b21000-b7c00000 ---p b7b21000 00:00 0
> b7d12000-b7de9000 r--p 00000000 03:01 441088 /usr/lib/locale/
> en_US.utf8/LC_COLLATE
> b7de9000-b7e1c000 r--p 00000000 03:01 441087 /usr/lib/locale/
> en_US.utf8/LC_CTYPE
> b7e1c000-b7e1d000 rw-p b7e1c000 00:00 0
> b7e1d000-b7f36000 r-xp 00000000 03:01 473445 /lib/libc-2.4.so
> b7f36000-b7f38000 r--p 00118000 03:01 473445 /lib/libc-2.4.so
> b7f38000-b7f3a000 rw-p 0011a000 03:01 473445 /lib/libc-2.4.so
> b7f3a000-b7f3d000 rw-p b7f3a000 00:00 0
> b7f3d000-b7f60000 r-xp 00000000 03:01 473453 /lib/libm-2.4.so
> b7f60000-b7f62000 rw-p 00022000 03:01 473453 /lib/libm-2.4.so
> b7f62000-b7f64000 r-xp 00000000 03:01 473451 /lib/libdl-2.4.so
> b7f64000-b7f66000 rw-p 00001000 03:01 473451 /lib/libdl-2.4.so
> b7f6b000-b7f75000 r-xp 00000000 03:01 473492 /lib/libgcc_s.so.1
> b7f75000-b7f76000 rw-p 00009000 03:01 473492 /lib/libgcc_s.so.1
> b7f76000-b7f77000 rw-p b7f76000 00:00 0
> b7f77000-b7f78000 r--p 00000000 03:01 441084 /usr/lib/locale/
> en_US.utf8/LC_NUMERIC
> b7f78000-b7f79000 r--p 00000000 03:01 429431 /usr/lib/locale/
> en_US.utf8/LC_TIME
> b7f79000-b7f7a000 r--p 00000000 03:01 431263 /usr/lib/locale/
> en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES
> b7f7a000-b7f81000 r--s 00000000 03:01 428430 /usr/lib/gconv/
> gconv-modules.cache
> b7f81000-b7f82000 rw-p b7f81000 00:00 0
> b7f82000-b7f9c000 r-xp 00000000 03:01 479433 /lib/ld-2.4.so
> b7f9c000-b7f9e000 rw-p 00019000 03:01 479433 /lib/ld-2.4.so
> bf868000-bf87d000 rw-p bf868000 00:00 0 [stack]
> ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]
> Aborted