OSUOSL/Nero are experiencing Internet connectivity problems. This affects us as we're hosted with OSUOSL. We apologize for the inconvenience.

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, ...@@ -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); 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); fullmetadata = malloc (fullmetadata_size);
if (fullmetadata == NULL) if (fullmetadata == NULL)
break; break;
fullmetadata_size = snprintf (fullmetadata, fullmetadata_size, 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; source_age = source_state->metadata_age;
if (fullmetadata_size > 0 && source_age != client_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; client_state->metadata_offset = 0;
} }
else else
len_byte = 0; len_byte = 0;
len = 1 + len_byte*16; len = 1 + len_byte*16;
buf = malloc (len); buf = calloc (1, len);
if (buf == NULL) if (buf == NULL)
break; 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