rtmpproto: Check APP_MAX_LENGTH

Fixes Ticket2292

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit 02ac3398eb)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer
2013-02-23 16:58:01 +01:00
parent 676df8c4c7
commit d034ddcd1f

View File

@@ -2156,16 +2156,20 @@ static int rtmp_open(URLContext *s, const char *uri, int flags)
fname = strchr(p + 1, '/'); fname = strchr(p + 1, '/');
if (!fname || (c && c < fname)) { if (!fname || (c && c < fname)) {
fname = p + 1; fname = p + 1;
av_strlcpy(rt->app, path + 1, p - path); av_strlcpy(rt->app, path + 1, FFMIN(p - path, APP_MAX_LENGTH));
} else { } else {
fname++; fname++;
av_strlcpy(rt->app, path + 1, fname - path - 1); av_strlcpy(rt->app, path + 1, FFMIN(fname - path - 1, APP_MAX_LENGTH));
} }
} }
} }
if (old_app) { if (old_app) {
// The name of application has been defined by the user, override it. // The name of application has been defined by the user, override it.
if (strlen(old_app) >= APP_MAX_LENGTH) {
ret = AVERROR(EINVAL);
goto fail;
}
av_free(rt->app); av_free(rt->app);
rt->app = old_app; rt->app = old_app;
} }