Am 12.09.2012 16:22, schrieb Stefan Krah:
> This is a false positive:
>
>
>
> Assumption: string == ""
>
>
>
> Call: PyLong_FromString("", NULL, (int)base);
>
>
>
> Now: str == ""
>
>
>
> Coverity claims an invalid access at str[1]:
>
>
>
> if (str[0] == '0' &&
>
> ((base == 16 && (str[1] == 'x' || str[1] == 'X')) ||
>
> (base == 8 && (str[1] == 'o' || str[1] == 'O')) ||
>
> (base == 2 && (str[1] == 'b' || str[1] == 'B'))))
>
>
>
> But str[1] is never accessed due to shortcut evaluation.
>
>
>
>
>
> Coverity appears to have serious problems with shortcut evaluations in many
>
> places.
> You might be right. But did you notice that there is much more code beyond the large comment block in PyLong_FromString()? There might be other code paths that push str beyond its limit. My change adds an early opt out in an error case and doesn't cause a performance degradation. I'd have no hard feeling if you'd prefer a revert but I'd keep the modification as it causes no harm. _______________________________________________ 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
