segmentation fault when calling the mpmath.mp.fraction(1,100).func(1000,None)
GoogleCodeExporter opened this issue · 2 comments
GoogleCodeExporter commented
What steps will reproduce the problem?
1. make sure gmpy is installed
2. import mpmath
3. mpmath.mp.fraction(1,100).func(1000, 0xdead )
What is the expected output? What do you see instead?
Some kind of exception. The python backend produces a KeyError
What version of the product are you using? On what operating system?
Debian testing distribution
python-mpmath = 0.17-1
python-gmpy = 1.15-1
Please provide any additional information below.
When the type of the last parameter is not correct, (say None, or an integer) A
segmentation fault happens, when using gmpy.
Original issue reported on code.google.com by and...@purdea.ro
on 9 Feb 2013 at 2:47
GoogleCodeExporter commented
The code in gmpy didn't properly check the rounding mode. If the rounding mode
is not a string, gmpy would cause a segmentation fault. I just committed a
patch to gmpy2 (the next major version of gmpy) that should fix the issue.
>>> import mpmath
>>> mpmath.mp.fraction(1,100).func(100,None)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "mpmath/ctx_mp.py", line 1184, in <lambda>
return ctx.constant(lambda prec, rnd: from_rational(p, q, prec, rnd),
File "mpmath/libmp/libmpf.py", line 468, in from_rational
return mpf_div(from_int(p), from_int(q), prec, rnd)
File "mpmath/libmp/libmpf.py", line 958, in mpf_div
return normalize1(sign, quot, sexp-texp-extra, bitcount(quot), prec, rnd)
ValueError: invalid rounding mode specified
>>>
Can you test the svn version of gmpy2? I have created issue 68 at
code.google.com/p/gmpy/ to track this issue.
Original comment by casevh
on 23 Feb 2013 at 6:36
GoogleCodeExporter commented
Taking ownership....
Original comment by casevh
on 23 Feb 2013 at 6:37
- Changed state: Accepted