mirror of
https://gitlab.xiph.org/xiph/icecast-server.git
synced 2024-12-04 14:46:30 -05:00
Be clearer about ebml_parse_sized_int's sign & endian behavior.
This commit is contained in:
parent
e6cb7e26ee
commit
de004670c3
@ -959,11 +959,15 @@ static ssize_t ebml_parse_var_int(unsigned char *buffer,
|
|||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse a normal int that may be from 1-8 bytes long.
|
/* Parse a big-endian int that may be from 1-8 bytes long.
|
||||||
* Returns 0 if there's not enough space to read the number;
|
* Returns 0 if there's not enough space to read the number;
|
||||||
* Returns -1 if the number is mis-sized.
|
* Returns -1 if the number is mis-sized.
|
||||||
* Else, returns the length of the number in bytes and writes the
|
* Else, returns the length of the number in bytes and writes the
|
||||||
* value to *out_value.
|
* value to *out_value.
|
||||||
|
* If is_signed is true, then the int is assumed to be two's complement
|
||||||
|
* signed, negative values will be correctly promoted, and the returned
|
||||||
|
* long long can be safely cast to a signed number on systems using
|
||||||
|
* two's complement arithmatic.
|
||||||
*/
|
*/
|
||||||
static ssize_t ebml_parse_sized_int(unsigned char *buffer,
|
static ssize_t ebml_parse_sized_int(unsigned char *buffer,
|
||||||
unsigned char *buffer_end,
|
unsigned char *buffer_end,
|
||||||
@ -971,7 +975,7 @@ static ssize_t ebml_parse_sized_int(unsigned char *buffer,
|
|||||||
int is_signed,
|
int is_signed,
|
||||||
unsigned long long *out_value)
|
unsigned long long *out_value)
|
||||||
{
|
{
|
||||||
long long value;
|
unsigned long long value;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
if (len < 1 || len > 8) {
|
if (len < 1 || len > 8) {
|
||||||
|
Loading…
Reference in New Issue
Block a user