From patchwork Fri Oct 6 07:52:02 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jorge Ramirez-Ortiz X-Patchwork-Id: 5434 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.90 with SMTP id m26csp168130jah; Fri, 6 Oct 2017 00:52:17 -0700 (PDT) X-Received: by 10.223.192.9 with SMTP id z9mr1172801wre.176.1507276337106; Fri, 06 Oct 2017 00:52:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507276337; cv=none; d=google.com; s=arc-20160816; b=ZPNbh46SzJp8aVcjkAR6Z4maEgivVZnn74CzWHF+wnCRdNF6M5HzbY/3x1mzXWWuSt dyPk9bMuPfwTeEDvYCulbT3oLIULIFDbkw1yUBGTmKDBxiGXsfjsaIv5cAKAXYA2noZY 0N78ztDlZYgY+MtXnpVsjZuPUaRRICKOL11GX8RMflMNltzVuFv1EkTfuhO8o2OjzajW g2yXNx4EkxAT53z0scMloE9Gc3hP/KpDpCOS2ElEu6xM30xJZYUvdfG4Iu809tDEeJ7K RoKrShXaSxFk9vf8J/7UkHKgSTZ/yJnE9AGhC9YsVcIuK2/qWGruWTuTc7/o85NeVYoQ EGjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=zGJoIh4Fs0JM6ekK1xpKrX0xDwHZj1lKxQzColPSeJs=; b=wqAg2rU6Avh1HVyO5YSW+EzQYKsWsg6NWaW5xf5IEBChPwd+NIuwSQx9Px7slYRwvy 4BJ27TdbxHFIZrU72BoR2nQOxIEMJRBp7G6i4YyvSBcXPx86I/o8vwpzSz5rwSWuRtMJ hWAt2NWAkGPx2QvAA9tOJHc1f4RXb7JDxEv0Fdh8gkU131f5ubV6HAuC+BddC7crZm98 reXX+D2+Xaj6FuXSOHLSxNGeEOBhvSwtBwyxXr0L2aOf9Nnw1QBatBf9na7NVqZDdi3s vPl+Bm38OKTQxiUCtos8yg06f/Relk5MYnrzv1Q4epskIvovzImh4LdJaaoxOe5og6sH b+PA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=H6FpRReM; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o78si939013wmi.101.2017.10.06.00.52.16; Fri, 06 Oct 2017 00:52:17 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=H6FpRReM; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BA86E68A4A0; Fri, 6 Oct 2017 10:52:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f176.google.com (mail-wr0-f176.google.com [209.85.128.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E21E168A3A3 for ; Fri, 6 Oct 2017 10:52:06 +0300 (EEST) Received: by mail-wr0-f176.google.com with SMTP id b21so12455128wrg.7 for ; Fri, 06 Oct 2017 00:52:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id; bh=pXEQ+vv8s2OhlF1XjJ8saeg3viLAg7xM5gXPx9xkCko=; b=H6FpRReMBsfqA4uxp3SMMwSv0/yWZWnMhy0LDIujvrdMWUbC4o5Qh13MRAIYq2HWfK QtrR8mMk5Yo16Bf8D+mkchK/I4sQL0W2tk0A4kQancCrPaZrM9xL9Sa/0epGW2a2xf3g lfklCRjAyEispcqUI8v1dFDvigiAstNd7AKvo= 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=pXEQ+vv8s2OhlF1XjJ8saeg3viLAg7xM5gXPx9xkCko=; b=j4nbttDYWI5Sn3styPT83cSLP/IEIRLifHe0XHmIwaBBuXDGWTAZUZTpLcBo0q2sRn 2wIf8gTeSkQqjCtu3jQH4T/fsaUA1VHjXbF1d2Ij7MK7u/0lmyBqOEgtW8x6KoLiw/ym 1c4NCg1lQumhNV0IMUMMneuNyrAoBpbhmcLU1cBlKEsZrnDh+UAKrven3bDqC1UonZY4 5NJ2GNlCrpu4thNJSkE9I1w4ek+2+t9rk6zrEA1RHBwK0i/Ysh6fbb9jpuj+d/AEq/EF Eu9frPYdCQPSlk2eannyPc7vb7zQjpqpLBq+b+KX9phJw8lfgrMnim6jHXMedDOs0R+b jCsA== X-Gm-Message-State: AMCzsaUMjS45LkOrzyuLo9fOU+USsdCrgrgzB2y4teQq/BcumfkPWu+R q1jVApV3TvL8goqcEtUtdKCe0A== X-Google-Smtp-Source: AOwi7QAbGFSbHyP8VbG/wzIztcrn9WKrR43yV7b3LSJUzTSsKU90/e0SDdXc36k1dT6Fp0hQTVXMPg== X-Received: by 10.223.173.97 with SMTP id p88mr1275476wrc.280.1507276326624; Fri, 06 Oct 2017 00:52:06 -0700 (PDT) Received: from localhost.localdomain (113.red-81-47-150.staticip.rima-tde.net. [81.47.150.113]) by smtp.gmail.com with ESMTPSA id o3sm1057553wmg.3.2017.10.06.00.52.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 06 Oct 2017 00:52:05 -0700 (PDT) From: Jorge Ramirez-Ortiz To: jorge.ramirez-ortiz@linaro.org, ffmpeg-devel@ffmpeg.org Date: Fri, 6 Oct 2017 09:52:02 +0200 Message-Id: <1507276322-19752-1-git-send-email-jorge.ramirez-ortiz@linaro.org> X-Mailer: git-send-email 2.7.4 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/v4l2: fix segmentation fault on codec exit 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" It occurs when the codec is closed while buffer references still exist. This is a regression from the original patchset where support for this use-case was implemented. The regression occurred while cleaning the code for the last patchset (decoding was tested only with ffplay which disposes of the buffer straightaway hence the feature went in broken/untested) --- libavcodec/v4l2_m2m.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/v4l2_m2m.c b/libavcodec/v4l2_m2m.c index bd96a6d..5e85bcb 100644 --- a/libavcodec/v4l2_m2m.c +++ b/libavcodec/v4l2_m2m.c @@ -331,8 +331,10 @@ int ff_v4l2_m2m_codec_end(AVCodecContext *avctx) ff_v4l2_context_release(&s->output); - if (atomic_load(&s->refcount)) - av_log(avctx, AV_LOG_ERROR, "ff_v4l2m2m_codec_end leaving pending buffers\n"); + if (atomic_load(&s->refcount)) { + av_log(avctx, AV_LOG_DEBUG, "ff_v4l2m2m_codec_end leaving pending buffers\n"); + return 0; + } ff_v4l2_context_release(&s->capture); sem_destroy(&s->refsync);