go-python / gpython

gpython is a python interpreter written in go "batteries not included"
BSD 3-Clause "New" or "Revised" License
870 stars 95 forks source link

Decimal.from_float takes bad arguments crashing gpython #199

Closed xiaxinmeng closed 1 year ago

xiaxinmeng commented 1 year ago

In the following example, Decimal.from_float take bad arguments and trigger segfault of gpython

Crashing message: segmentation fault

from decimal import Decimal

class BadFloat(float):

    def as_integer_ratio(self):
        return 1

    def __abs__(self):
        return self
Decimal.from_float(BadFloat(1.2))

environment: gpython 0.1.0 on Ubuntu 18.04, and gpython main(https://github.com/go-python/gpython/commit/6f8e06a4660709ab44398d8b1a18738aa407b1c3 on Oct 5)

ncw commented 1 year ago

gpython doesn't come with the Decimal module - where did you get these from?

Please give steps to reproduce with gpython

Thanks