From patchwork Thu Jul 23 17:11:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gautam Ramakrishnan X-Patchwork-Id: 21235 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 EBF244473C4 for ; Thu, 23 Jul 2020 20:18:15 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BD59D68B605; Thu, 23 Jul 2020 20:18:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f193.google.com (mail-pl1-f193.google.com [209.85.214.193]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 043D268B562 for ; Thu, 23 Jul 2020 20:18:09 +0300 (EEST) Received: by mail-pl1-f193.google.com with SMTP id w17so2828580ply.11 for ; Thu, 23 Jul 2020 10:18:08 -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; bh=W4CO9a214z3IZjttK8rGTdPyqEF1XuRguX+y1HWOv0w=; b=Mpcpe4efsdBFPH3sXdcbBG5oDUvd+y29IwSe4FR7rXWM2gY9BHY3Vd7Z+vodcxeSLV xjarLXf2DBLIopXAybFrzma5PmtsdRQGGZQ8f9rBcj07Ng99ea/9B2LaYqm4jYOU1Ktz VqHPPrJJnSqiHghco0+qfgg2LgQJ3rj50+2mrnH+KcfqmrLwNN2wt70J6dZcgEHbzjpj nGs2UMGdFKJxJBQkOcRxK92DI6rb4+CBKGvd2mNqP5udDRyjoDcBdQrxR5J0jBhSL0WA gCrAWpW+nSQ86xiIj4qBhlMx+28lq0oTw7L0kAUiIs25am+WklfFTa1vMt1ZGI2X9FNr Jgrw== 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; bh=W4CO9a214z3IZjttK8rGTdPyqEF1XuRguX+y1HWOv0w=; b=JQhKz9A55AwkvMKGfb6BldGyGVUHRzv9vrbI4szzdzDq5dZuzed6d2qGHEMkE5HVr6 M72oL94b/e7LP0AWhNo6/+3Nl69dFzGuRaoP/4Fe4gCm/k6XUdyuuYXvgyspFKc8+FNy XhRQK5z4bCbDvWQcYHSh4Z0kSMS3XrPZcDW+VhCLgkNGsomVfYw7YIl9+AVGSsdo4wZ7 x+b06xHhasbnzGqJB1CxaHvNtT6GUAneRuD8FUJdJckPHjRhIGExdMuLV9I1ghY8kbxm msoPYFw14cN8A/zkyOYAZ/JgkuzR1SkHCUNQh9XXd6cmyMj2HSLk5+CVIHHIoNH7XfL0 m7bA== X-Gm-Message-State: AOAM532VsHNljjIWLQxN1bxiFZKH08sEqP6CddBEBKO9dzOaj9dgzbMO Cooh6eux6HuAtQoFliibslbbUFP/z3M= X-Google-Smtp-Source: ABdhPJzbt5P2zm85LbrrA6G6U93MK8sOR+ZPMOGzk9bDUretvbA1PDm8amLDjI3uL5TQStUWu34szA== X-Received: by 2002:aa7:97a1:: with SMTP id d1mr5038214pfq.190.1595524277529; Thu, 23 Jul 2020 10:11:17 -0700 (PDT) Received: from localhost.localdomain ([122.167.212.213]) by smtp.gmail.com with ESMTPSA id p10sm3766829pgn.6.2020.07.23.10.11.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Jul 2020 10:11:16 -0700 (PDT) From: gautamramk@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Jul 2020 22:41:10 +0530 Message-Id: <20200723171111.11312-1-gautamramk@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH v4 1/2] libavcodec/jpeg2000dec: Fix codeblock decode check 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: Gautam Ramakrishnan MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Gautam Ramakrishnan The codeblock decoder checks whether the mqc decoder has decoded the right number of bytes. However, this check does not account for the fact that the mqc encoder's flush routine adds 2 bytes of data which does not have to be read by the decoder. The check is modified to account for this. This patch solves issue #4827 --- libavcodec/jpeg2000dec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/jpeg2000dec.c b/libavcodec/jpeg2000dec.c index e941ebb5d0..a470cf47da 100644 --- a/libavcodec/jpeg2000dec.c +++ b/libavcodec/jpeg2000dec.c @@ -1754,9 +1754,13 @@ static int decode_cblk(Jpeg2000DecoderContext *s, Jpeg2000CodingStyle *codsty, pass_cnt ++; } - if (cblk->data + cblk->length - 2*(term_cnt < cblk->nb_terminations) != t1->mqc.bp) { + if (cblk->data + cblk->length - 2 > t1->mqc.bp) { av_log(s->avctx, AV_LOG_WARNING, "End mismatch %"PTRDIFF_SPECIFIER"\n", - cblk->data + cblk->length - 2*(term_cnt < cblk->nb_terminations) - t1->mqc.bp); + cblk->data + cblk->length - 2 - t1->mqc.bp); + } + + if (cblk->data + cblk->length < t1->mqc.bp) { + av_log(s->avctx, AV_LOG_WARNING, "Synthetic End of Stream Marker Read.\n"); } return 1;