Commit 085f8d61 authored by brendan's avatar brendan

The inline metadata text was losing the final character when the string length was a

multiple of 16.

svn path=/icecast/trunk/icecast/; revision=7089
parent 19b1a168
......@@ -125,28 +125,28 @@ static int send_metadata(client_t *client, mp3_client_data *client_state,
fullmetadata_size = strlen (source_state->metadata) + sizeof (meta_fmt);
if (fullmetadata_size > 4080)
if (fullmetadata_size > 4079)
{
fullmetadata_size = 4080;
fullmetadata_size = 4079;
}
fullmetadata = malloc (fullmetadata_size);
if (fullmetadata == NULL)
break;
fullmetadata_size = snprintf (fullmetadata, fullmetadata_size,
"StreamTitle='%.*s';", fullmetadata_size-(sizeof (meta_fmt)-1), source_state->metadata);
"StreamTitle='%.*s';", fullmetadata_size-(sizeof (meta_fmt)-1), source_state->metadata);
source_age = source_state->metadata_age;
if (fullmetadata_size > 0 && source_age != client_state->metadata_age)
{
len_byte = (fullmetadata_size-1)/16 + 1; /* to give 1-255 */
len_byte = (fullmetadata_size)/16 + 1; /* to give 1-255 */
client_state->metadata_offset = 0;
}
else
len_byte = 0;
len = 1 + len_byte*16;
buf = malloc (len);
buf = calloc (1, len);
if (buf == NULL)
break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment