rtpdec: Malloc the fmtp value buffer

This allows very large value strings, needed for xiph extradata.

Patch by Josh Allmann, joshua dot allmann at gmail

Originally committed as revision 23859 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Josh Allmann 2010-06-28 20:27:25 +00:00 committed by Martin Storsjö
parent 0fecad09fe
commit 824535e3c6
1 changed files with 12 additions and 3 deletions

View File

@ -538,8 +538,14 @@ int ff_parse_fmtp(AVStream *stream, PayloadContext *data, const char *p,
char *attr, char *value))
{
char attr[256];
char value[4096];
char *value;
int res;
int value_size = strlen(p) + 1;
if (!(value = av_malloc(value_size))) {
av_log(stream, AV_LOG_ERROR, "Failed to allocate data for FMTP.");
return AVERROR(ENOMEM);
}
// remove protocol identifier
while (*p && *p == ' ') p++; // strip spaces
@ -548,11 +554,14 @@ int ff_parse_fmtp(AVStream *stream, PayloadContext *data, const char *p,
while (ff_rtsp_next_attr_and_value(&p,
attr, sizeof(attr),
value, sizeof(value))) {
value, value_size)) {
res = parse_fmtp(stream, data, attr, value);
if (res < 0)
if (res < 0 && res != AVERROR_PATCHWELCOME) {
av_free(value);
return res;
}
}
av_free(value);
return 0;
}