| Igor Schein on Fri, 30 Jul 1999 09:59:47 -0400 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| stack corruption |
Hi,
the following happens on Alpha (RedHat 6.0):
? pol=y^2-2;
? bnfinit(pol);m=matrix(0,2);m[0,1];
*** array index (0) out of allowed range [1-0]: ...nit(pol);m=matrix(0,2);m[
*** 0,1];
^-----
? bnfinit(pol);
*** segmentation fault: bug in GP (please report).
At the point the stack becomes corrupted and you can't even kill
the session gracefully - you have to ^Z and kill %.
I don't get this behavior on any other platform I tried.
3 remarks here.
1) Since being able to reproduce this problem heavily depends
on memory layout, one needs to start gp with -f flags to assure
reproducibility.
2) If you split the 2nd command into 2 parts, SEGV doesn't occur.
3) allowed range is listed as [1-0], which is nonsense. This leads
me to believe it's a PARI bug.
Finally, below is gdb output.
Can you reproduce the bug, fellow Alpha users?
Thanks
Igor
------------------------------------------------------------------------
#0 0x200008611d0 in chunk_free (ar_ptr=0x20000a0b748, p=0x120413dd0)
at malloc.c:3009
#1 0x20000863c74 in __libc_free (mem=0x20000a0b748) at malloc.c:2932
#2 0x12025358c in killbloc0 (x=0x120413df8, inspect=0)
at ../src/language/init.c:507
#3 0x120253628 in gunclone (x=0x120413df8) at ../src/language/init.c:512
#4 0x1200a80a8 in ideallllredall (nf=0x200012c31c0, x=0x200012c0148,
vdir=0x12040f440, prec=5, precint=3) at ../src/basemath/base4.c:1575
#5 0x1200efdc4 in mulred (nf=0x200012c31c0, x=0x200012c03b0, I=0x200012c0380,
prec=5, precint=3) at ../src/basemath/buch2.c:160
#6 0x1200f028c in powsubfactgen (nf=0x200012c31c0, a=16, prec=5, precint=3)
at ../src/basemath/buch2.c:202
#7 0x120102ad8 in buchall (P=0x120412d88, gcbach=0x11ffff6b0,
gcbach2=0x11ffff6b0, gRELSUP=0x11ffff670, gborne=0x12040f460, nbrelpid=4,
minsfb=3, flun=-2, prec=4) at ../src/basemath/buch2.c:2645
#8 0x120100aa8 in classgroupall (P=0x120412d88, data=0x0, flag=0, prec=4)
at ../src/basemath/buch2.c:2319
#9 0x120100c4c in bnfinit0 (P=0x120412d88, flag=0, data=0x0, prec=4)
at ../src/basemath/buch2.c:2343
#10 0x12023f278 in identifier () at ../src/language/anal.c:1397
#11 0x12023bbb4 in truc () at ../src/language/anal.c:699
#12 0x12023b658 in facteur () at ../src/language/anal.c:638
#13 0x12023a7e8 in expr () at ../src/language/anal.c:421
#14 0x12023a55c in seq () at ../src/language/anal.c:393
#15 0x12023975c in lisseq0 (t=0x120411f10 "bnfinit(pol);", f=0x12023a460 <seq>)
at ../src/language/anal.c:160
#16 0x120239848 in lisseq (t=0x120411f10 "bnfinit(pol);")
at ../src/language/anal.c:174
#17 0x1202399cc in readseq (c=0x120411f10 "bnfinit(pol);", strict=1)
at ../src/language/anal.c:200
#18 0x120269bf0 in gp_main_loop () at ../src/gp/gp.c:1990
#19 0x12026aca8 in main (argc=3, argv=0x11ffffc08) at ../src/gp/gp.c:2215
#20 0x2000081dfb0 in __libc_start_main (main=0x12026aa00 <main>, argc=3,
argv=0x11ffffc08, init=0x1200159a0 <_init>, fini=0x12027a560 <_fini>,
rtld_fini=0x20000a0b748 <main_arena>, stack_end=0x11ffffbf0)
at ../sysdeps/generic/libc-start.c:78