diff options
author | Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com> | 2015-09-14 14:53:18 -0700 |
---|---|---|
committer | Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com> | 2015-09-18 16:24:33 -0700 |
commit | fb349359dc9ce7b794106ee5e5f4e33c1b56a449 (patch) | |
tree | feb3c66cefec32822a8c74f6f80c4ffdf34e7bc5 /ffserver.c | |
parent | b4cb597900152e5abf90ac62ebfa18c78931a580 (diff) | |
download | ffmpeg-fb349359dc9ce7b794106ee5e5f4e33c1b56a449.tar.gz |
ffserver: start dropping all unneededly harcoded str lengths
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Diffstat (limited to 'ffserver.c')
-rw-r--r-- | ffserver.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/ffserver.c b/ffserver.c index f9e40b54fd..5b98e7a0c5 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); } } |