[FFmpeg-devel] [PATCH 1/2] ffserver: dont leak child arguments
Lukasz Marek
lukasz.m.luki2 at gmail.com
Fri Nov 21 00:51:43 CET 2014
On 21.11.2014 00:47, Lukasz Marek wrote:
> Signed-off-by: Lukasz Marek <lukasz.m.luki2 at gmail.com>
> ---
> ffserver.c | 2 +-
> ffserver_config.c | 18 +++++++++++++++++-
> ffserver_config.h | 2 ++
> 3 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/ffserver.c b/ffserver.c
> index 933eb0e..40a5faa 100644
> --- a/ffserver.c
> +++ b/ffserver.c
> @@ -3660,7 +3660,7 @@ static void handle_child_exit(int sig)
>
> if (uptime < 30)
> /* Turn off any more restarts */
> - feed->child_argv = 0;
> + ffserver_free_child_args(&feed->child_argv);
> }
> }
> }
> diff --git a/ffserver_config.c b/ffserver_config.c
> index 02c8431..a235142 100644
> --- a/ffserver_config.c
> +++ b/ffserver_config.c
> @@ -31,6 +31,8 @@
> #include "cmdutils.h"
> #include "ffserver_config.h"
>
> +#define MAX_CHILD_ARGS 64
> +
> static int ffserver_save_avoption(AVCodecContext *ctx, const char *opt, const char *arg,
> AVDictionary **dict, int type, FFServerConfig *config, int line_num);
> static void vreport_config_error(const char *filename, int line_num, int log_level,
> @@ -603,7 +605,7 @@ static int ffserver_parse_config_feed(FFServerConfig *config, const char *cmd, c
> if (!av_strcasecmp(cmd, "Launch")) {
> int i;
>
> - feed->child_argv = av_mallocz(64 * sizeof(char *));
> + feed->child_argv = av_mallocz_array(MAX_CHILD_ARGS, sizeof(char *));
> if (!feed->child_argv)
> return AVERROR(ENOMEM);
> for (i = 0; i < 62; i++) {
Right after submit I notice this hardcoded 62 so I changed locally to
MAX_CHILD_ARGS - 2 :]
More information about the ffmpeg-devel
mailing list