Mercurial > libavformat.hg
changeset 6193:da9998b48dff libavformat
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
author | mstorsjo |
---|---|
date | Mon, 28 Jun 2010 20:27:25 +0000 |
parents | b93d7a25cd6b |
children | 6c03f060caad |
files | rtpdec.c |
diffstat | 1 files changed, 12 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/rtpdec.c Mon Jun 28 11:35:18 2010 +0000 +++ b/rtpdec.c Mon Jun 28 20:27:25 2010 +0000 @@ -538,8 +538,14 @@ 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 @@ 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; }