ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet <reyna...@osg.samsung.com> | Mon Sep 14 14:53:18 2015 -0700| [fb349359dc9ce7b794106ee5e5f4e33c1b56a449] | committer: Reynaldo H. Verdejo Pinochet
ffserver: start dropping all unneededly harcoded str lengths Signed-off-by: Reynaldo H. Verdejo Pinochet <reyna...@osg.samsung.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fb349359dc9ce7b794106ee5e5f4e33c1b56a449 --- ffserver.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/ffserver.c b/ffserver.c index f9e40b5..5b98e7a 100644 --- a/ffserver.c +++ b/ffserver.c @@ -71,6 +71,8 @@ #include "cmdutils.h" #include "ffserver_config.h" +#define PATH_LENGTH 1024 + const char program_name[] = "ffserver"; const int program_birth_year = 2000; @@ -388,16 +390,33 @@ static int compute_datarate(DataRateData *drd, int64_t count) static void start_children(FFServerStream *feed) { - char pathname[1024]; + char *pathname; char *slash; int i; + size_t cmd_length; if (no_launch) return; + cmd_length = strlen(my_program_name); + + /** + * FIXME: WIP Safeguard. Remove after clearing all harcoded + * '1024' path lengths + */ + if (cmd_length > PATH_LENGTH - 1) { + http_log("Could not start children. Command line: '%s' exceeds " + "path length limit (%d)\n", my_program_name, PATH_LENGTH); + return; + } + + pathname = av_strdup (my_program_name); + if (!pathname) { + http_log("Could not allocate memory for children cmd line\n"); + return; + } /* replace "ffserver" with "ffmpeg" in the path of current * program. Ignore user provided path */ - av_strlcpy(pathname, my_program_name, sizeof(pathname)); slash = strrchr(pathname, '/'); if (!slash) @@ -445,6 +464,7 @@ static void start_children(FFServerStream *feed) signal(SIGPIPE, SIG_DFL); execvp(pathname, feed->child_argv); + av_free (pathname); _exit(1); } } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog