mirror of https://git.ffmpeg.org/ffmpeg.git
ffserver: start dropping all unneededly harcoded str lengths
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
This commit is contained in:
parent
b4cb597900
commit
fb349359dc
24
ffserver.c
24
ffserver.c
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue