diff options
author | Tim Peters <tim.peters@gmail.com> | 2003-03-20 18:32:13 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2003-03-20 18:32:13 (GMT) |
commit | d50ade68ec240ea8ea12604809d8c70985263dce (patch) | |
tree | 7dd938bc5a9dcf40707839e518420804bbb3cd94 /Include | |
parent | 62364ffb80a7dab0477fe7dc7aec5478ab6afec2 (diff) | |
download | cpython-d50ade68ec240ea8ea12604809d8c70985263dce.zip cpython-d50ade68ec240ea8ea12604809d8c70985263dce.tar.gz cpython-d50ade68ec240ea8ea12604809d8c70985263dce.tar.bz2 |
SF bug 705836: struct.pack of floats in non-native endian order
pack_float, pack_double, save_float: All the routines for creating
IEEE-format packed representations of floats and doubles simply ignored
that rounding can (in rare cases) propagate out of a long string of
1 bits. At worst, the end-off carry can (by mistake) interfere with
the exponent value, and then unpacking yields a result wrong by a factor
of 2. In less severe cases, it can end up losing more low-order bits
than intended, or fail to catch overflow *caused* by rounding.
Bugfix candidate, but I already backported this to 2.2.
In 2.3, this code remains in severe need of refactoring.
Diffstat (limited to 'Include')
0 files changed, 0 insertions, 0 deletions