From patchwork Wed Nov 28 07:19:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 11198 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 B030444E057 for ; Wed, 28 Nov 2018 09:26:57 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5ED7E68A791; Wed, 28 Nov 2018 09:26:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it1-f178.google.com (mail-it1-f178.google.com [209.85.166.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7465A689EFC for ; Wed, 28 Nov 2018 09:26:52 +0200 (EET) Received: by mail-it1-f178.google.com with SMTP id o19so2820460itg.5 for ; Tue, 27 Nov 2018 23:26:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=C0K4Eu37xntc7Qnpo66lwceZgDtG3Es+Cwza7INTOtM=; b=NMPHUBZHs9Y6b5MAmgejjyHfISFs1/qUCGHJuUE1kvk+EYOg6XZnvFr/gVEVhoAYFp +XvjJILUwJToPj7+N0O6gyNY0wrmAYQiOQv+Ev6aZcXqC1Z9eFbqlROcFEY+QopcTTpk tBxnfCFJY3r3z4rYVObJDL2EyNaWqNzOSK8F0sL/2jefZrtzbO+E/piylaPsZdZkb4bX T4ynN51b+dM9E4rs2rJiLt6gbqo+b1eJXbMIG7T75FpTl2osgHNWfWsY51zS4u0VL0Mf z8hyypcfH33ymMuGSRhGiUbN9ulXkXPxDDLvjQ9V58I6Tzpl3W8x61A9syDqKbTmwpTW plWg== 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:mime-version :content-transfer-encoding; bh=C0K4Eu37xntc7Qnpo66lwceZgDtG3Es+Cwza7INTOtM=; b=XMjv/YdoQkod7R3NsqAaxQHoDU0mAtSaAmEe/OG2xjFD7ivIQAYYifTg0crF+j7b/T nTW4s0jczmZuKG7eX0XWfZ++4wUFt9JfAT3Wo+dwVr5T05iwtnLWqHLeMRKgUEPmEwK4 TSvPELMaIn6/ernFuVN6AmK69YFzxCmEhbl2ASCfoMaYkVbc7BVMq9B6hSpiAlRdhqo5 rv3xEaZSsiMzeAgVCWiyoAILlQa9MGhI9BcLuT0QSbiz8uwfz0NIFfWGqx6NewmZBcVW OdB2X7uIBs0VlZYLqWyp9kGQW+t4J3kWW6ZYYLqD2BVVZ4iY8qjN/DhWpua2UCgn0hLi pC1w== X-Gm-Message-State: AA+aEWYxEYUpcZMPz0JlKstmUypLr6d/IvmRmlW4Vd+ihyAXAEVXYRrm /21bERu0JxJS1RgV7MFEwULWmidc X-Google-Smtp-Source: AFSGD/X/LpmbNrsWjt1Iy1PhDA80txyWpD7ZDYUnEWCGLhpCfwicNJCbtdYpP2vRgTlVlNQAjwG75w== X-Received: by 2002:a24:3797:: with SMTP id r145-v6mr1787362itr.156.1543389607855; Tue, 27 Nov 2018 23:20:07 -0800 (PST) Received: from MacBook-Pro.localdomain ([71.201.155.37]) by smtp.gmail.com with ESMTPSA id z1sm2207764iog.57.2018.11.27.23.20.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 27 Nov 2018 23:20:06 -0800 (PST) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Wed, 28 Nov 2018 01:19:57 -0600 Message-Id: <20181128071959.30447-1-rodger.combs@gmail.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] lavf/matroskadec: don't treat I/O errors as EOF 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" pb->eof_reached is set on error, so we need to check pb->error, even after checking pb->eof_reached or avio_feof(pb), or else we can end up returning AVERROR_EOF instead of the actual error code. --- libavformat/matroskadec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index d3c9c33720..2774ccabb2 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -789,7 +789,7 @@ static int matroska_resync(MatroskaDemuxContext *matroska, int64_t last_pos) } matroska->done = 1; - return AVERROR_EOF; + return pb->error ? pb->error : AVERROR_EOF; } /* @@ -836,7 +836,7 @@ static int ebml_read_num(MatroskaDemuxContext *matroska, AVIOContext *pb, pos, pos); return pb->error ? pb->error : AVERROR(EIO); } - return AVERROR_EOF; + return pb->error ? pb->error : AVERROR_EOF; } /* get the length of the EBML number */