search for: prev_packet_gp

Displaying 5 results from an estimated 5 matches for "prev_packet_gp".

2017 Dec 07
2
[PATCH 0/2] libopusfile int64 overflows
On Tue, Nov 28, 2017 at 3:22 PM, James Zern <jzern at google.com> wrote: > On Mon, Nov 20, 2017 at 1:07 PM, James Zern <jzern at google.com> wrote: >> Just an attempt to avoid overflows with an explicit check, I don't know if >> there's a better way to identify corrupt input here. >> >> James Zern (2): >> op_pcm_seek: fix int64 overflow
2017 Dec 07
1
[PATCH 0/2] libopusfile int64 overflows
..._offset == (target_gp - pcm_start) and diff == (gp - > pcm_start). > This works. > [...] > >> @@ -2078,7 +2078,10 @@ static int op_fetch_and_process_page(OggOpusFile >> *_of, >> &&OP_LIKELY(diff<total_duration)){ >> cur_packet_gp=prev_packet_gp; >> for(pi=0;pi<op_count;pi++){ >> - diff=durations[pi]-diff; >> + /*Check for overflow.*/ >> + if(diff<0&&OP_UNLIKELY(OP_INT64_MAX+diff<durations[pi])){ >> + diff=0; >> + } else...
2017 Dec 07
0
[PATCH 0/2] libopusfile int64 overflows
...s, but at least if we try a full seek and fail we'll report an error in most cases instead of pretending we succeeded. > @@ -2078,7 +2078,10 @@ static int op_fetch_and_process_page(OggOpusFile *_of, > &&OP_LIKELY(diff<total_duration)){ > cur_packet_gp=prev_packet_gp; > for(pi=0;pi<op_count;pi++){ > - diff=durations[pi]-diff; > + /*Check for overflow.*/ > + if(diff<0&&OP_UNLIKELY(OP_INT64_MAX+diff<durations[pi])){ > + diff=0; > + } else diff=durations[pi]-diff...
2017 Nov 20
7
[PATCH 0/2] libopusfile int64 overflows
Just an attempt to avoid overflows with an explicit check, I don't know if there's a better way to identify corrupt input here. James Zern (2): op_pcm_seek: fix int64 overflow op_fetch_and_process_page: fix int64 overflow src/opusfile.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) -- 2.15.0.448.gf294e3d99a-goog
2017 Nov 20
0
[PATCH 2/2] op_fetch_and_process_page: fix int64 overflow
...ions(+), 1 deletion(-) diff --git a/src/opusfile.c b/src/opusfile.c index df326af..2bef277 100644 --- a/src/opusfile.c +++ b/src/opusfile.c @@ -2078,7 +2078,10 @@ static int op_fetch_and_process_page(OggOpusFile *_of, &&OP_LIKELY(diff<total_duration)){ cur_packet_gp=prev_packet_gp; for(pi=0;pi<op_count;pi++){ - diff=durations[pi]-diff; + /*Check for overflow.*/ + if(diff<0&&OP_UNLIKELY(OP_INT64_MAX+diff<durations[pi])){ + diff=0; + } else diff=durations[pi]-diff; /*If we have sa...