From patchwork Thu Aug 20 19:14:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thierry Foucu X-Patchwork-Id: 21777 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9213C44B215 for ; Thu, 20 Aug 2020 22:22:05 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 667CE68B5F7; Thu, 20 Aug 2020 22:22:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f194.google.com (mail-pl1-f194.google.com [209.85.214.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A7D3868B584 for ; Thu, 20 Aug 2020 22:21:58 +0300 (EEST) Received: by mail-pl1-f194.google.com with SMTP id z23so1336059plo.8 for ; Thu, 20 Aug 2020 12:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+/kC6RwdqWgUN4b6RhH4vbFPQSPuHgojoTow1Z/0yV4=; b=m96l/GaaP3NtmgWy12nVS71f1945suFNYv4rSxJ/Ci/TNBkMcd/vga600AtT7IidOn wmDqBAz9sWajHckcMHtQctVOsPULew1bxzMQn6V2sdShb5akW3kIIXxUyREWpEGA8T6C cNvfYoYYa5nk6vd9K1Hc2/JqISPDk8sL/fw36ZHemPulKz7GtQ71vS+ZPrWsK6Z5K95Q Drsg8QCoHYrQcApvHIvwx1ant4tDAC2ETzaZy8y01W1SEva4kOr2+PZMbaylDvpE6+gx MVLlW1eP/tWsW/PZt05Zzu0f2vjpkJTNu7WEALH4i37QxfyxEnRtHCMFhVLouqX7hrnY MLrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=+/kC6RwdqWgUN4b6RhH4vbFPQSPuHgojoTow1Z/0yV4=; b=ogZ5EuHDurAokh+EgDDCBYAvPLpLgoyX5TO4KVKJ935Zbkt1AshyrFR/K1FE3gU1mH PjM5Jp/+2oqUgxAaK1Bgyj+xm0draBw7oqo+vDIUpfJgXe/CJjrVATo2NgkErQfY8fWL goYk+c7OxcdkkCmDt5IRffIxXa14gznHYx1vu+n+0fmRfLovbbjzh1CTaEbq8FFIwTTk ByLb+lcIsv7hPMTHZR+V/mdVZA/CRKZi9sMxP6kOF3Vn9WqjyIsXMVRFEgHswd/SEqi/ a17NPWgaMGFgnxYVQVCEWaK/+zrJ+xX/dDWiYZpJ1CTCQ3LebNcAef59HVho3vxuauhB 7DGQ== X-Gm-Message-State: AOAM533Kjwt0SNffwrKQTVOcfv6yLj/hm4S4bRnDmhFe1kkMzssr2B1Y vbJfY8Z2w6MubdtNO7s1hkdf3pYKWIk= X-Google-Smtp-Source: ABdhPJz5w8nu1lFgpCBP3gfME0SKiJsbstI8jHxqGY6Dt8DVwKtUFINy7BBzEaMJLgtlxgVMIgGFMA== X-Received: by 2002:a17:902:323:: with SMTP id 32mr3786072pld.59.1597950896689; Thu, 20 Aug 2020 12:14:56 -0700 (PDT) Received: from tfoucu.mtv.corp.google.com ([2620:0:1000:4001:a28c:fdff:feed:4b81]) by smtp.gmail.com with ESMTPSA id 8sm2906640pjx.14.2020.08.20.12.14.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2020 12:14:56 -0700 (PDT) From: Thierry Foucu To: ffmpeg-devel@ffmpeg.org Date: Thu, 20 Aug 2020 12:14:52 -0700 Message-Id: <20200820191452.471886-1-tfoucu@gmail.com> X-Mailer: git-send-email 2.28.0.297.g1956fa8f8d-goog MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] libavformat/ffmetadecc.c: Fix Use-of-uninitialized-value X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Thierry Foucu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Check the return value of sscanf as it can return -1(EOF), for example when the first char in the line is 0x00 --- libavformat/ffmetadec.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavformat/ffmetadec.c b/libavformat/ffmetadec.c index 45c92f1ff6..0ea89fe3f3 100644 --- a/libavformat/ffmetadec.c +++ b/libavformat/ffmetadec.c @@ -101,19 +101,22 @@ static AVChapter *read_chapter(AVFormatContext *s) uint8_t line[256]; int64_t start, end; AVRational tb = {1, 1e9}; + int ret; get_line(s->pb, line, sizeof(line)); if (sscanf(line, "TIMEBASE=%d/%d", &tb.num, &tb.den)) get_line(s->pb, line, sizeof(line)); - if (!sscanf(line, "START=%"SCNd64, &start)) { + ret = sscanf(line, "START=%"SCNd64, &start); + if (ret <= 0) { av_log(s, AV_LOG_ERROR, "Expected chapter start timestamp, found %s.\n", line); start = (s->nb_chapters && s->chapters[s->nb_chapters - 1]->end != AV_NOPTS_VALUE) ? s->chapters[s->nb_chapters - 1]->end : 0; } else get_line(s->pb, line, sizeof(line)); - if (!sscanf(line, "END=%"SCNd64, &end)) { + ret = sscanf(line, "END=%"SCNd64, &end); + if (ret <= 0) { av_log(s, AV_LOG_ERROR, "Expected chapter end timestamp, found %s.\n", line); end = AV_NOPTS_VALUE; }