This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients eric.smith, mark.dickinson, r.david.murray, serhiy.storchaka
Date 2012-04-30.17:16:22
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1335806183.53.0.810659725193.issue14700@psf.upfronthosting.co.za>
In-reply-to
Content
Indeed, Objects/unicodeobject.c (default branch) has this, at around line 13839:

                        if ((prec*10) / 10 != prec) {
                            PyErr_SetString(PyExc_ValueError,
                                            "prec too big");
                            goto onError;
                        }

... which since 'prec' has type int, will invoke undefined behaviour.  There are probably many other cases like this one.

Serhiy, what platform are you on?  And are you applying any special compile-time flags?  For gcc, we should be using -fwrapv, which in this case should make the above code work as intended.
History
Date User Action Args
2012-04-30 17:16:23mark.dickinsonsetrecipients: + mark.dickinson, eric.smith, r.david.murray, serhiy.storchaka
2012-04-30 17:16:23mark.dickinsonsetmessageid: <1335806183.53.0.810659725193.issue14700@psf.upfronthosting.co.za>
2012-04-30 17:16:22mark.dickinsonlinkissue14700 messages
2012-04-30 17:16:22mark.dickinsoncreate