ffserver: start dropping all unneededly harcoded str lengths

Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
This commit is contained in:
Reynaldo H. Verdejo Pinochet 2015-09-14 14:53:18 -07:00
parent b4cb597900
commit fb349359dc
1 changed files with 22 additions and 2 deletions

View File

@ -71,6 +71,8 @@
#include "cmdutils.h" #include "cmdutils.h"
#include "ffserver_config.h" #include "ffserver_config.h"
#define PATH_LENGTH 1024
const char program_name[] = "ffserver"; const char program_name[] = "ffserver";
const int program_birth_year = 2000; 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) static void start_children(FFServerStream *feed)
{ {
char pathname[1024]; char *pathname;
char *slash; char *slash;
int i; int i;
size_t cmd_length;
if (no_launch) if (no_launch)
return; 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 /* replace "ffserver" with "ffmpeg" in the path of current
* program. Ignore user provided path */ * program. Ignore user provided path */
av_strlcpy(pathname, my_program_name, sizeof(pathname));
slash = strrchr(pathname, '/'); slash = strrchr(pathname, '/');
if (!slash) if (!slash)
@ -445,6 +464,7 @@ static void start_children(FFServerStream *feed)
signal(SIGPIPE, SIG_DFL); signal(SIGPIPE, SIG_DFL);
execvp(pathname, feed->child_argv); execvp(pathname, feed->child_argv);
av_free (pathname);
_exit(1); _exit(1);
} }
} }