Freeze if Gz.deflate->deflate used twice
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=1843
Reported by Andreas Lange, Roxen IS lange@roxen.com
megalon:~$ gdb ~/pike/7.2.101/bin/pike
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you
are
welcome to change it and/or distribute copies of it under certain
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.8"...
(gdb) r
Starting program: /home/lange/pike/7.2.101/bin/pike
[New LWP 1]
[New LWP 2]
[New LWP 3]
[New LWP 4]
[New LWP 5]
Pike v7.2 release 101 running Hilfe v2.0 (Incremental Pike Frontend)
> function g = Gz.deflate()->deflate;
Result: deflate
> g("1");
Result: "x\234""3\4\0\0""2\0""2"
> g("2");
[Here it stops]
Program received signal SIGTERM, Terminated.
0xff36fff0 in thr_self () from /usr/lib/libthread.so.1
(gdb) bt
#0 0xff36fff0 in thr_self () from /usr/lib/libthread.so.1
#1 0xfe7d16f0 in do_deflate (buf=0xffbee968, this=0x35e828, flush=4)
at /home/lange/Pike/7.2/src/modules/Gz/zlibmod.c:156
#2 0xfe7d1920 in gz_deflate (args=1)
at /home/lange/Pike/7.2/src/modules/Gz/zlibmod.c:237
#3 0x49d34 in mega_apply (type=APPLY_STACK, args=1, arg1=0x2e2444,
arg2=0x1)
at /home/lange/Pike/7.2/src/interpret.c:1228
#4 0x48164 in eval_instruction_without_debug (pc=0x307172 "\232\"\177-")
at /home/lange/Pike/7.2/src/interpret_functions.h:1489
#5 0x4a140 in mega_apply (type=APPLY_STACK, args=0, arg1=0x0, arg2=0x2)
at /home/lange/Pike/7.2/src/interpret.c:799
The code around this is
154: THREADS_ALLOW();
155: ret=deflate(& this->gz, flush);
156: THREADS_DISALLOW();