The pointer variable 'point', which is defined and dynamically allocated memory within the while loop of the 'parse_points_str' function, is not released on error paths.
Signed-off-by: LuMingYin <lumingyindet...@163.com> --- libavfilter/vf_curves.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c index 3e4a42bab3..97f284db22 100644 --- a/libavfilter/vf_curves.c +++ b/libavfilter/vf_curves.c @@ -182,20 +182,22 @@ static int parse_points_str(AVFilterContext *ctx, struct keypoint **points, cons if (point->x < 0 || point->x > 1 || point->y < 0 || point->y > 1) { av_log(ctx, AV_LOG_ERROR, "Invalid key point coordinates (%f;%f), " "x and y must be in the [0;1] range.\n", point->x, point->y); + av_free(point); return AVERROR(EINVAL); } - if (!*points) - *points = point; if (last) { if ((int)(last->x * scale) >= (int)(point->x * scale)) { av_log(ctx, AV_LOG_ERROR, "Key point coordinates (%f;%f) " "and (%f;%f) are too close from each other or not " "strictly increasing on the x-axis\n", last->x, last->y, point->x, point->y); + av_free(point); return AVERROR(EINVAL); } last->next = point; } + if (!*points) + *points = point; last = point; } -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".