mirror of
https://github.com/xiph/opus.git
synced 2025-06-07 07:50:51 +00:00
Fix packet length handling for 16-bit machines (makes no difference on 32-bit)
This commit is contained in:
parent
54f7cb4629
commit
259e166648
1 changed files with 6 additions and 4 deletions
|
@ -589,7 +589,7 @@ static int opus_packet_parse_impl(const unsigned char *data, opus_int32 len,
|
||||||
int cbr;
|
int cbr;
|
||||||
unsigned char ch, toc;
|
unsigned char ch, toc;
|
||||||
int framesize;
|
int framesize;
|
||||||
int last_size;
|
opus_int32 last_size;
|
||||||
const unsigned char *data0 = data;
|
const unsigned char *data0 = data;
|
||||||
|
|
||||||
if (size==NULL)
|
if (size==NULL)
|
||||||
|
@ -615,7 +615,9 @@ static int opus_packet_parse_impl(const unsigned char *data, opus_int32 len,
|
||||||
{
|
{
|
||||||
if (len&0x1)
|
if (len&0x1)
|
||||||
return OPUS_INVALID_PACKET;
|
return OPUS_INVALID_PACKET;
|
||||||
size[0] = last_size = len/2;
|
last_size = len/2;
|
||||||
|
/* If last_size doesn't fit in size[0], we'll catch it later */
|
||||||
|
size[0] = (short)last_size;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
/* Two VBR frames */
|
/* Two VBR frames */
|
||||||
|
@ -676,7 +678,7 @@ static int opus_packet_parse_impl(const unsigned char *data, opus_int32 len,
|
||||||
if (last_size*count!=len)
|
if (last_size*count!=len)
|
||||||
return OPUS_INVALID_PACKET;
|
return OPUS_INVALID_PACKET;
|
||||||
for (i=0;i<count-1;i++)
|
for (i=0;i<count-1;i++)
|
||||||
size[i] = last_size;
|
size[i] = (short)last_size;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -704,7 +706,7 @@ static int opus_packet_parse_impl(const unsigned char *data, opus_int32 len,
|
||||||
1275. Reject them here.*/
|
1275. Reject them here.*/
|
||||||
if (last_size > 1275)
|
if (last_size > 1275)
|
||||||
return OPUS_INVALID_PACKET;
|
return OPUS_INVALID_PACKET;
|
||||||
size[count-1] = last_size;
|
size[count-1] = (short)last_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (frames)
|
if (frames)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue