[FFmpeg-cvslog] ffserver: start dropping all unneededly harcoded str lengths
Reynaldo H. Verdejo Pinochet
git at videolan.org
Sat Sep 19 01:35:28 CEST 2015
ffmpeg | branch: master | Reynaldo H. Verdejo Pinochet <reynaldo at 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 <reynaldo at 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);
}
}
More information about the ffmpeg-cvslog
mailing list