From patchwork Fri Oct 2 10:18:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 22683 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 1D4D4449E72 for ; Fri, 2 Oct 2020 13:19:05 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F39E3689E2F; Fri, 2 Oct 2020 13:19:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f66.google.com (mail-ed1-f66.google.com [209.85.208.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 79D4A6880F5 for ; Fri, 2 Oct 2020 13:18:58 +0300 (EEST) Received: by mail-ed1-f66.google.com with SMTP id w1so1111397edr.3 for ; Fri, 02 Oct 2020 03:18:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=KRSXXgjkW0uvwThh8AABHKqsKqtujMet4HANGfK1knQ=; b=ZbCWKxBtWbv9tY0Rr5mxibyVsTpwAps7VsMtjHkgZ/DE/hHaSFEA1BK0NWErOaMCrp 6cBbhJNVkbhTbDdWhLQh1/5s/bmuUe0OweQQuYstmYDAkasAiLUKRbTvpjcyHpZJr3PT 8dzlr+p/tAA+WQHILH9yQruIK65nPhVvm36ZVggYXh+tIchzxx69BLEw9CJQDbYDxJ9e XRQEmxTVfZADzmHnVx0GobFcb/wc1ntjVrxHY6CkfQka2z6mHdhZ9k7DzbHxD1T5qUpl LpuIr04IP5AUX2tUQhfHZHpDn1bxFZ+8jcyv0famBbHfXyTZ/oMVJ5O5qIUnJPzVezmf k7Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=KRSXXgjkW0uvwThh8AABHKqsKqtujMet4HANGfK1knQ=; b=IGCaEC7wFvY/nuaHFpgcikdwv6Kv1l9f3G2qy4/Ew6rhKSgncVBEJjb6bPqxwIPMRX Jg1ik1da26GZhi9J3GAWaXCRiNxPOR48zpo55DSQMIF/5dG74Xm/R2GqBCQYA2gSKxvl jhiXj2oEC8HhDmsVuwXpEvYfrYqjRdNEcBj5L2qLTsIelj7QuPgIjNGuL1Cj4BJjED9W /dCsLYaRkm/Ba0bKoRfUTgs5gJ9bF2gktkx0WTl574NA6SioHA6AtLOTU4pwbzfAKjpW GxO2Pr+gEKZVBZEsqD6mDYZ8UK22PW5sONWTfIG4j9RXkxN211SShzSSrhu2FDqFw3j7 vM/g== X-Gm-Message-State: AOAM533GLTQxDzzfWELg4Yh/X1YgT/gCZXNhQLE7+fJ4hemY1Q+6eQc8 p4PLobUGlmnbHttp9ZWgjZOt8WeP1vg= X-Google-Smtp-Source: ABdhPJzt8WasbYmeCzY//7LMI/tdVV8eAiRtL4t8vWPzTUWdYln3Iv8drgxy8XPzhI2yPNJBNHJ13g== X-Received: by 2002:a50:9e82:: with SMTP id a2mr1496492edf.117.1601633937022; Fri, 02 Oct 2020 03:18:57 -0700 (PDT) Received: from localhost.localdomain ([109.227.50.123]) by smtp.gmail.com with ESMTPSA id s7sm830549ejd.103.2020.10.02.03.18.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2020 03:18:56 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Fri, 2 Oct 2020 12:18:49 +0200 Message-Id: <20201002101849.14935-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] avcodec/tiff: do not abort decoding if strips are available 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Even if such files are invalid, they can be decoded just fine. Also stored tiles may have bigger dimensions than displayed ones, so do not abort decoding in such cases. Signed-off-by: Paul B Mahol --- libavcodec/tiff.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 359d613bb3..9bf08b1900 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -929,8 +929,8 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, s->avctx_mjpeg->height == h / 2 && s->avctx_mjpeg->pix_fmt == AV_PIX_FMT_GRAY16LE) { is_single_comp = 1; - } else if (s->avctx_mjpeg->width == w && - s->avctx_mjpeg->height == h && + } else if (s->avctx_mjpeg->width >= w && + s->avctx_mjpeg->height >= h && s->avctx_mjpeg->pix_fmt == (is_u16 ? AV_PIX_FMT_GRAY16 : AV_PIX_FMT_GRAY8) ) { is_single_comp = 0; @@ -1923,8 +1923,7 @@ again: has_strip_bits = s->strippos || s->strips || s->stripoff || s->rps || s->sot || s->sstype || s->stripsize || s->stripsizesoff; if (has_tile_bits && has_strip_bits) { - av_log(avctx, AV_LOG_ERROR, "Tiled TIFF is not allowed to strip\n"); - return AVERROR_INVALIDDATA; + av_log(avctx, AV_LOG_WARNING, "Tiled TIFF is not allowed to strip\n"); } /* now we have the data and may start decoding */