diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-11-02 14:02:01 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2020-11-02 14:02:01 +0100 |
commit | 90101548ec43fd50ddc143eb0cbe99bdd0b47c6f (patch) | |
tree | 6a4a7eaa55a31a7d54eeb0c34ef9bf3ef4547b94 /src/fig0_2.cpp | |
parent | ea56f46c8f017ef98ae647abc99ceecba9dce1e1 (diff) | |
download | etisnoop-90101548ec43fd50ddc143eb0cbe99bdd0b47c6f.tar.gz etisnoop-90101548ec43fd50ddc143eb0cbe99bdd0b47c6f.tar.bz2 etisnoop-90101548ec43fd50ddc143eb0cbe99bdd0b47c6f.zip |
Improve FIG0/13, add 0/7, avoid int overflows
Diffstat (limited to 'src/fig0_2.cpp')
-rw-r--r-- | src/fig0_2.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/fig0_2.cpp b/src/fig0_2.cpp index 102b74f..6d309c9 100644 --- a/src/fig0_2.cpp +++ b/src/fig0_2.cpp @@ -59,22 +59,18 @@ fig_result_t fig0_2(fig0_common_t& fig0, const display_settings_t &disp) while (k < fig0.figlen) { if (fig0.pd() == 0) { - sid = f[k] * 256 + f[k+1]; + sid = read_u16_from_buf(f + k); ecc = 0; cid = (f[k] & 0xF0) >> 4; - sref = (f[k] & 0x0F) * 256 + f[k+1]; + sref = (f[k] & 0x0F) * 256uL + f[k+1]; k += 2; } else { - sid = f[k] * 256 * 256 * 256 + \ - f[k+1] * 256 * 256 + \ - f[k+2] * 256 + \ - f[k+3]; - + sid = read_u32_from_buf(f + k); ecc = f[k]; cid = (f[k+1] & 0xF0) >> 4; - sref = (f[k+1] & 0x0F) * 256 * 256 + \ - f[k+2] * 256 + \ + sref = (f[k+1] & 0x0F) * 256uL * 256uL + + f[k+2] * 256uL + f[k+3]; k += 4; |