[FFmpeg-devel] [PATCH V1 1/3] lavfi/avf_showspectrum: add error handle if av_asprintf return null

Jun Zhao mypopydev at gmail.com
Sat Oct 12 04:14:38 EEST 2019


From: Jun Zhao <barryjzhao at tencent.com>

add error handle if av_asprintf return null.

Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
---
 libavfilter/avf_showspectrum.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/libavfilter/avf_showspectrum.c b/libavfilter/avf_showspectrum.c
index f175bf1..d5785af 100644
--- a/libavfilter/avf_showspectrum.c
+++ b/libavfilter/avf_showspectrum.c
@@ -695,11 +695,15 @@ static int draw_legend(AVFilterContext *ctx, int samples)
                                  inlink->channel_layout);
 
     text = av_asprintf("%d Hz | %s", inlink->sample_rate, chlayout_str);
+    if (!text)
+        return AVERROR(ENOMEM);
 
     drawtext(s->outpicref, 2, outlink->h - 10, "CREATED BY LIBAVFILTER", 0);
     drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, outlink->h - 10, text, 0);
     if (s->stop) {
         char *text = av_asprintf("Zoom: %d Hz - %d Hz", s->start, s->stop);
+        if (!text)
+            return AVERROR(ENOMEM);
         drawtext(s->outpicref, outlink->w - 2 - strlen(text) * 10, 3, text, 0);
         av_freep(&text);
     }
@@ -766,6 +770,8 @@ static int draw_legend(AVFilterContext *ctx, int samples)
         for (x = 0; x < s->w && s->single_pic; x+=80) {
             float seconds = x * spp / inlink->sample_rate;
             char *units = get_time(ctx, seconds, x);
+            if (!units)
+                return AVERROR(ENOMEM);
 
             drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->h + s->start_y + 6, units, 0);
             drawtext(s->outpicref, s->start_x + x - 4 * strlen(units), s->start_y - 12, units, 0);
@@ -822,6 +828,8 @@ static int draw_legend(AVFilterContext *ctx, int samples)
         for (y = 0; y < s->h && s->single_pic; y+=40) {
             float seconds = y * spp / inlink->sample_rate;
             char *units = get_time(ctx, seconds, x);
+            if (!units)
+                return AVERROR(ENOMEM);
 
             drawtext(s->outpicref, s->start_x - 8 * strlen(units) - 4, s->start_y + y - 4, units, 0);
             av_free(units);
@@ -1360,6 +1368,8 @@ static int plot_spectrum_column(AVFilterLink *inlink, AVFrame *insamples)
         if (s->old_pts < outpicref->pts) {
             if (s->legend) {
                 char *units = get_time(ctx, insamples->pts /(float)inlink->sample_rate, x);
+                if (!units)
+                    return AVERROR(ENOMEM);
 
                 if (s->orientation == VERTICAL) {
                     for (y = 0; y < 10; y++) {
-- 
1.7.1



More information about the ffmpeg-devel mailing list