On 1/18/07, Nick Coghlan <[EMAIL PROTECTED]> wrote:
> Calvin Spealman wrote:
> > Added a check in test_long.LongTest.test_misc() that long("123\0", 10)
> > fails properly and adapted the patch to int_new to long_new. I get
> > this weird feeling that if its impossible for the function
> > (PyLong_FromString) to know if its being given bad data, having know
> > way to know if the string is supposed to continue past the zero-byte,
> > then doesn't it make sense to say that the function by design is
> > broken?
>
> It makes sense to say the function is being misused in this case - it's
> designed to convert *C* strings to PyLong objects, so the assumption
> that there are no embedded NULs is a valid one. That said, I think a
> better patch for 2.6 would be to provide a separate PyLong_FromPyString
> function which did the embedded NULL check (and update abstract.c to use
> that instead of its own internal function).Thats more or less the route that would make sense to me! If they would be accepted I would gladly provide patches for both int and long types (and float? anything else?). Is there often a usecase that anyone wants to use PyLong_FromString() where the c-string is not the contents of PyString? I suppose when used from extensions creating them. > Cheers, > Nick. > > -- > Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia > --------------------------------------------------------------- > http://www.boredomandlaziness.org > -- Read my blog! I depend on your acceptance of my opinion! I am interesting! http://ironfroggy-code.blogspot.com/ _______________________________________________ Python-Dev mailing list [email protected] http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
