X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=libavformat%2Fwebmdashenc.c;h=1280d8a763beea2903361fce0f4ae8adb4f2ad8a;hb=e7c91850531aae4c2e1bf1afc62fc1d910f8736c;hp=550ad72e4d4bbe63d5f8dc97694ac5f04bdd5420;hpb=b893f3f54333eebd4909d447852e98615af785a9;p=ffmpeg diff --git a/libavformat/webmdashenc.c b/libavformat/webmdashenc.c index 550ad72e4d4..1280d8a763b 100644 --- a/libavformat/webmdashenc.c +++ b/libavformat/webmdashenc.c @@ -288,33 +288,55 @@ static int parse_filename(char *filename, char **representation_id, char *period_pos = NULL; char *temp_pos = NULL; char *filename_str = av_strdup(filename); - if (!filename_str) return AVERROR(ENOMEM); + int ret = 0; + + if (!filename_str) { + ret = AVERROR(ENOMEM); + goto end; + } temp_pos = av_stristr(filename_str, "_"); while (temp_pos) { underscore_pos = temp_pos + 1; temp_pos = av_stristr(temp_pos + 1, "_"); } - if (!underscore_pos) return AVERROR_INVALIDDATA; + if (!underscore_pos) { + ret = AVERROR_INVALIDDATA; + goto end; + } period_pos = av_stristr(underscore_pos, "."); - if (!period_pos) return AVERROR_INVALIDDATA; + if (!period_pos) { + ret = AVERROR_INVALIDDATA; + goto end; + } *(underscore_pos - 1) = 0; if (representation_id) { *representation_id = av_malloc(period_pos - underscore_pos + 1); - if (!(*representation_id)) return AVERROR(ENOMEM); + if (!(*representation_id)) { + ret = AVERROR(ENOMEM); + goto end; + } av_strlcpy(*representation_id, underscore_pos, period_pos - underscore_pos + 1); } if (initialization_pattern) { *initialization_pattern = av_asprintf("%s_$RepresentationID$.hdr", filename_str); - if (!(*initialization_pattern)) return AVERROR(ENOMEM); + if (!(*initialization_pattern)) { + ret = AVERROR(ENOMEM); + goto end; + } } if (media_pattern) { *media_pattern = av_asprintf("%s_$RepresentationID$_$Number$.chk", filename_str); - if (!(*media_pattern)) return AVERROR(ENOMEM); + if (!(*media_pattern)) { + ret = AVERROR(ENOMEM); + goto end; + } } - av_free(filename_str); - return 0; + +end: + av_freep(&filename_str); + return ret; } /*