From patchwork Mon Oct 12 20:36:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22873 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 7BF7344AFE6 for ; Mon, 12 Oct 2020 23:36:35 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4A34C68BB62; Mon, 12 Oct 2020 23:36:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f195.google.com (mail-qk1-f195.google.com [209.85.222.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4F8DD68BB50 for ; Mon, 12 Oct 2020 23:36:29 +0300 (EEST) Received: by mail-qk1-f195.google.com with SMTP id s7so18833914qkh.11 for ; Mon, 12 Oct 2020 13:36:29 -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=uqaI/PXfc6X/BgmmmQHsnDsP7bBg4CHP2y+LT9aQOpQ=; b=vS9l86FMcYzK4o/Z/xK2tzRANolnS2kAU3w8dltYvHMQdvVBKmGccR76NpfJ/0WQCu IXhShS8ieZXdhp8RDDCAIJjDWuC+2C/YGXKOYPzHIuDFgTVLZGgnskYjNYUKvp9wezHG qDaPEJLbfYWll89ZTfYewO2znO4JYEI1lB1Mfjy6q6sncYqxJ5JUrwcWuN1+RqvneYRM cPBduC9poUxVxfWffu0SLW8jWPBL7U1NBY1IYJx0NGAc35xr81EemHm/a2sKZMOOkVfw ZnVxjT7NdCQ6MhcfSacUZkn5oEnyPVzbFErAR0y05BP4ZjuMRg2MEuwydD3vJ/fOMCcp bQYQ== 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=uqaI/PXfc6X/BgmmmQHsnDsP7bBg4CHP2y+LT9aQOpQ=; b=JKN3d7DrfFpyw/YNMFPBCy5EfnQ/r0A5TBF2i3xFUqn5fxRWL9gMkwtQbjWSicgGQI J6GhcWI5RajTb5+p1QbbqhKQnqRW7M41+e43LSTxVrbDCuqOxB79XH3A2731jm34kCtL 1I7jkXar7LwhvwPRZbdClG+jezfPZLfkBYeLGQgoAqvLdczI5GYeGrrAbehM5VlWUNOZ EuINr3n4xpJ4pYqn6jPgSqsL2mgLPpzKLG/3pBY0hMb2368LuKpgOx7UCXtdxsOA05gq Ys1NI3ebQVCpYLamZE22mXX2wmczaRaJlGuB6+hiN7oiEZedKIt6osWX/gteK4NVP++X /tDA== X-Gm-Message-State: AOAM5309jnn3fJWy0KzifXXNMMKHQzt80N7ZexSFyRFoznQY0rMhNtyn rdKedu6jeTcApIB3uqxZhNXhKb0JTx4= X-Google-Smtp-Source: ABdhPJxk16qIGywvKLAyOldFU1nR7AnDzXXHEUdu3QJSyvzaj2LWxEwW2XJ8qfPycrjAgyiOY98tgQ== X-Received: by 2002:a37:8044:: with SMTP id b65mr11249308qkd.24.1602534987468; Mon, 12 Oct 2020 13:36:27 -0700 (PDT) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.36.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:36:27 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Oct 2020 16:36:04 -0400 Message-Id: <20201012203609.41647-1-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/6] avformat/rtspdec: add network init to listen mode 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman As per the docs network initialization is required before ff_url_join(). Furthermore, because the ff_network_init() was skipped, this makes one additional call to ff_network_close() if the stream exits without errors. The was forgotten in the origin commit of the listen mode: a8ad6ffafe89e3a83f343f69249338e8245816f7 Signed-off-by: Andriy Gelman --- libavformat/rtspdec.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index ef084a8b2b..1ff84cdd56 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -640,6 +640,9 @@ static int rtsp_listen(AVFormatContext *s) int ret; enum RTSPMethod methodcode; + if (!ff_network_init()) + return AVERROR(EIO); + /* extract hostname and port */ av_url_split(proto, sizeof(proto), auth, sizeof(auth), host, sizeof(host), &port, path, sizeof(path), s->url); @@ -664,19 +667,19 @@ static int rtsp_listen(AVFormatContext *s) &s->interrupt_callback, NULL, s->protocol_whitelist, s->protocol_blacklist, NULL)) { av_log(s, AV_LOG_ERROR, "Unable to open RTSP for listening\n"); - return ret; + goto fail; } rt->state = RTSP_STATE_IDLE; rt->rtsp_hd_out = rt->rtsp_hd; for (;;) { /* Wait for incoming RTSP messages */ ret = read_line(s, rbuf, sizeof(rbuf), &rbuflen); if (ret < 0) - return ret; + goto fail; ret = parse_command_line(s, rbuf, rbuflen, uri, sizeof(uri), method, sizeof(method), &methodcode); if (ret) { av_log(s, AV_LOG_ERROR, "RTSP: Unexpected Command\n"); - return ret; + goto fail; } if (methodcode == ANNOUNCE) { @@ -692,9 +695,13 @@ static int rtsp_listen(AVFormatContext *s) ret = rtsp_read_setup(s, host, uri); if (ret) { ffurl_close(rt->rtsp_hd); - return AVERROR_INVALIDDATA; + ret = AVERROR_INVALIDDATA; + goto fail; } } +fail: + ff_network_close(); + return ret; } static int rtsp_probe(const AVProbeData *p) From patchwork Mon Oct 12 20:36:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22874 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 838ED44AFE6 for ; Mon, 12 Oct 2020 23:36:41 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6F88D68BB90; Mon, 12 Oct 2020 23:36:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f195.google.com (mail-qt1-f195.google.com [209.85.160.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E1D9968B9BC for ; Mon, 12 Oct 2020 23:36:34 +0300 (EEST) Received: by mail-qt1-f195.google.com with SMTP id c23so14532530qtp.0 for ; Mon, 12 Oct 2020 13:36:34 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=/dyA8fyhWFX0XP+c7/7xy35I+9iirg14rSoOFfJtiy8=; b=BkgCetEWMA8t9Fv4FHurONkHu8MeMmymPqbxuINQEjygW2vutOA9dCz9L/AAyg5d4V eXwsZnr6ON802pxms6FfL124KMbsUd7KuO0vy99KMerIv9iT0O0aBY8601dUqXoxbIw8 Dybm6v3RXXW/W8MsCe85Z1slNWpIq9wbCSxhC9ZNYdrOl30qTvdk3R5HRVvdntgSTl0R 5aj5Mc6nEZrj+SO1GnJrXuBOE7ron9yCaEoLU+hPXOUkpfcdA7Q7nUYIxj9BrQfEn1QV K7KiUE25E/TlQKukbLFMxtP/lv93dsdvE8tJJZfECDxnQDIIxF3kxv9e2wweGcHeydQX UjoQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=/dyA8fyhWFX0XP+c7/7xy35I+9iirg14rSoOFfJtiy8=; b=lwlQ6VeUgauolUW/2E61tnMCZyeP1ck8cgWtcWqbmTwiAEakrZe9sqk0v3QUeo4ZOy VgOCLK8ah5Mpmxyfc9/GA/9imipTBhWwkmIph3OEv8ZJ65XXUR7dAw8pdHJdDQJ828RG AG7P/43hkWRzZUfIQMwmTnIhES/hmkCwzeOIh1uQR9eUND2zmWWXl8o6EgCU9Rwpu0TW HdDO5r3nDmwEBAjOqAiQgbXdQ7bqCtZJ6h4mUxZTc8HV7MyiebES2xteZlpo1yLBkiL0 vgUgitF5hg+OovvK+k5bR+dSJlPZkmkzGek3lcozh3lKK7ezdD8egClv2tACBhskZiSN Rw2Q== X-Gm-Message-State: AOAM5303lb/SZ6qggTqCCbf2v+tineyIV2gaZFL0ntOsm1dIRaSXwaZu gwdCnhtHw44HMfQCJqOq369NQ9dRK6k= X-Google-Smtp-Source: ABdhPJySvaU4vLaXPt2nhS7YyUbVBxQBGXBkCCjnlHAqVUrfegbmvPdXjmdua1na7vob3VdLUX9Q8w== X-Received: by 2002:aed:2982:: with SMTP id o2mr11499389qtd.73.1602534993292; Mon, 12 Oct 2020 13:36:33 -0700 (PDT) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.36.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:36:32 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Oct 2020 16:36:05 -0400 Message-Id: <20201012203609.41647-2-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012203609.41647-1-andriy.gelman@gmail.com> References: <20201012203609.41647-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/6] avformat/rtspdec: fix mem leaks in listen mode if init fails 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Signed-off-by: Andriy Gelman --- libavformat/rtspdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index 1ff84cdd56..5a383b5a19 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -694,12 +694,13 @@ static int rtsp_listen(AVFormatContext *s) } else if (methodcode == SETUP) ret = rtsp_read_setup(s, host, uri); if (ret) { - ffurl_close(rt->rtsp_hd); ret = AVERROR_INVALIDDATA; goto fail; } } fail: + ff_rtsp_close_streams(s); + ff_rtsp_close_connections(s); ff_network_close(); return ret; } From patchwork Mon Oct 12 20:36:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22875 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 89C3444AFE6 for ; Mon, 12 Oct 2020 23:36:46 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7188268BBB2; Mon, 12 Oct 2020 23:36:46 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f194.google.com (mail-qt1-f194.google.com [209.85.160.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6A4C68BB8F for ; Mon, 12 Oct 2020 23:36:40 +0300 (EEST) Received: by mail-qt1-f194.google.com with SMTP id c13so3520155qtx.6 for ; Mon, 12 Oct 2020 13:36:40 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=1UOXWxegvNX3eeQz4NF2iWkEEqYEu4BxddjXQ/U2TDA=; b=sZsEHgLS57k70syeoMnGiPyNZfXf8s594RVABDJ5IeMqyqRllQxQNwK3iO68ArLGTP B65SGqHjh/4L2nwQCnZsNoW8YnZJsEv8UzdrKb1IcDq2Gx6fyTVz96GTgdOSDSRZaT1+ bg++P7c/gbR4+NoHtzObM6NO7S5gB+yQ4UQWzi0URtYSq7AARaTX/foRv7/OLwkGAXHi jg3ISgmQfxeqHrk1HKyJjLZyWu7k1CtwKNHpREBKXNtb+BE2jfR+QbvvjGQkm9i6JYo0 59THUd/e8aVzYQzu+53VJyjqIPszWZJTW7m0UHrv9UuQk25rAf0OYAHuibTGv5mDqadH Lq/w== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=1UOXWxegvNX3eeQz4NF2iWkEEqYEu4BxddjXQ/U2TDA=; b=QoZ33W58PtYtqVq+iU3jo/J+q0FB6O6mjOApsqUDAy9Mq/zmZUjBMpl2gZDcSoVFCz 4AHyj5UC2slhXZcOGxPMWEF7dSIXcUJutc55m08oIHq78SmTLDFcG3pIXcj2EhFc6bxn ZrzEC0ILkB4AdfB23gYJF2/PBJ4XSTcG0sToXRrrw/yJzfFtxh6w6G/bpqdV5LU+UffK 7vSRlW+WasynAfLRdVzTyVRBwjqH/4ImCA/dAbMME3HbSWBR6S6wpOw2Yv8V6rHItt6W 9d6FLml5/Uqs8hFi2UkKLFD2i1Uzn3tFXInklM2Fpjj3HI+vl6WgD9IZ85OraiNqhAsu Deew== X-Gm-Message-State: AOAM530/bgn9aBBvHJev3tDdopqiz2CJnCyHnJr+2Hii2PDtj+NYjiwg 2wbN9Ex0rErOHUu0h7L/kl3qTbl8LAc= X-Google-Smtp-Source: ABdhPJyOZJXvrHWuAwDdeZ5K0Kz0CFqkBr1jglfG+WunKWPrHeE+mV/erhQnztSbjHy5O4b7MSXYoQ== X-Received: by 2002:ac8:66d6:: with SMTP id m22mr12376758qtp.219.1602534999352; Mon, 12 Oct 2020 13:36:39 -0700 (PDT) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.36.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:36:39 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Oct 2020 16:36:06 -0400 Message-Id: <20201012203609.41647-3-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012203609.41647-1-andriy.gelman@gmail.com> References: <20201012203609.41647-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 3/6] avformat/rtspdec: fix mem leaks in connect mode if init fails 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Fixes #6334 Signed-off-by: Andriy Gelman --- libavformat/rtspdec.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index 5a383b5a19..7c617837ca 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -735,22 +735,26 @@ static int rtsp_read_header(AVFormatContext *s) rt->real_setup_cache = !s->nb_streams ? NULL : av_mallocz_array(s->nb_streams, 2 * sizeof(*rt->real_setup_cache)); - if (!rt->real_setup_cache && s->nb_streams) - return AVERROR(ENOMEM); + if (!rt->real_setup_cache && s->nb_streams) { + ret = AVERROR(ENOMEM); + goto fail; + } rt->real_setup = rt->real_setup_cache + s->nb_streams; if (rt->initial_pause) { /* do not start immediately */ } else { if ((ret = rtsp_read_play(s)) < 0) { - ff_rtsp_close_streams(s); - ff_rtsp_close_connections(s); - return ret; + goto fail; } } } return 0; + +fail: + rtsp_read_close(s); + return ret; } int ff_rtsp_tcp_read_packet(AVFormatContext *s, RTSPStream **prtsp_st, From patchwork Mon Oct 12 20:36:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22876 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 9BC8744AFE6 for ; Mon, 12 Oct 2020 23:36:51 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8284168BBD1; Mon, 12 Oct 2020 23:36:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f194.google.com (mail-qk1-f194.google.com [209.85.222.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A68E168BBAC for ; Mon, 12 Oct 2020 23:36:45 +0300 (EEST) Received: by mail-qk1-f194.google.com with SMTP id s4so18871795qkf.7 for ; Mon, 12 Oct 2020 13:36:45 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=49wNBvML9RyRIacGSND+wUvYr+PE4KwoyP88Fzp+Nng=; b=I9JAi2ltcss3O9ATTS7447qFqF6hJhB1Jj44pno/mahbz7PcXMTh5G0ssdUW02EJir 7POh4g35XIXtEJxqMsONUgl0o4Qm7YAb7uECzlNJnK8Jo9T5VRiHp+avQbnYm1nsnHlN 6mSRFXwXAWu2jn2o3vRmj/cnM7qNO/7sMDgWzUM5KyV87JaZciWAocOSVXKizaBfTxje EtqnHwiFQZc1ot/Y5TCpq9ucvvpA8j4x59QC/wNiFpVfny7LkbJi0s9gHEvjIOOEgZxg t6isrh4f2ZMMhuNxlxu8RGW0XfSNHsMHGpU/BgeqUSE02WOHjsvinE2+poIgMebOcycn +SWQ== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=49wNBvML9RyRIacGSND+wUvYr+PE4KwoyP88Fzp+Nng=; b=oUKPCMoJTFTcxUfYEfPs2gciIpDa9nWtOn4fUXsp5IF0+06ftpwDKhSw3r3OLEq3gb Bx8L2wEButpOnnjgu3nRjowjPJnkueLQoa5JpNHhqZ2TqAPF5qD00IOUBITEIHFiTa84 5B47KQPS723ovxjNdjQ7wFGjlnusu6py5l0NZHsju/cwCqmAorOoADTn2A10hnAHbRM6 SGJA/udTjcouRpQmm+6JtDMTtkXR/47dfxS5/eTgJYtC9p/3fl37Zc9YHG4T3fmtyTBl um2DknwT7N7sEhFftlOI8l4hVrwjaeNa5nuZ6IFDIu5CPula7GRBNZDH2lSWefSjGVt+ B/1g== X-Gm-Message-State: AOAM532spH66duHj3/P3Eq9WO8LwdOJAljzVQjffrcwec0IJTAGdkzWk 3J3UNQQSLF/5tvlhw28vTNzsv/JmrWI= X-Google-Smtp-Source: ABdhPJxIfkDGD4B6V277jRGdDBf7XELXJvTVCaQVWpOvZKcraUnmB9+ZwTUlI0NYQ47D4VgcWWW6hA== X-Received: by 2002:a37:a81:: with SMTP id 123mr11522828qkk.487.1602535004239; Mon, 12 Oct 2020 13:36:44 -0700 (PDT) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:36:43 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Oct 2020 16:36:07 -0400 Message-Id: <20201012203609.41647-4-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012203609.41647-1-andriy.gelman@gmail.com> References: <20201012203609.41647-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 4/6] avformat/rtspdec: cosmetics 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman Make error check style consistent with rest of function. --- libavformat/rtspdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/rtspdec.c b/libavformat/rtspdec.c index 7c617837ca..b9fbc45190 100644 --- a/libavformat/rtspdec.c +++ b/libavformat/rtspdec.c @@ -744,9 +744,9 @@ static int rtsp_read_header(AVFormatContext *s) if (rt->initial_pause) { /* do not start immediately */ } else { - if ((ret = rtsp_read_play(s)) < 0) { + ret = rtsp_read_play(s); + if (ret < 0) goto fail; - } } } From patchwork Mon Oct 12 20:36:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22877 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 A02CC44AFE6 for ; Mon, 12 Oct 2020 23:36:53 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8753268BBDD; Mon, 12 Oct 2020 23:36:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f196.google.com (mail-qk1-f196.google.com [209.85.222.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A67168BBD9 for ; Mon, 12 Oct 2020 23:36:51 +0300 (EEST) Received: by mail-qk1-f196.google.com with SMTP id 140so17160197qko.2 for ; Mon, 12 Oct 2020 13:36:51 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=bEXbmel9v8DBZodwZqloGujldFG8Ju4I8Lm+kj3Y/p4=; b=TLnfLtfVBFqow9NB+f92BAYIxIzACW+4tsTACshYEK6gUR3zDmoft8NZoOJr7k5YyZ BU8DNB2Ajz5CBVMSNFCBKAxBtV+ncCEnU1/ddSh+GXqgouqUqyXDJ+V7NN5TfpiIKXTT Srr5ts55V9KjOoQjUBUZyyP0NAYiS8DeNq+kxv/Snqd5f873cFzVRisNMI3E0/2rVWKn D8B8aDeNNEuHS7Y8RaZl/336UN2EJFR76KK9bBKY/EvkXsvwQN0cZqBq3QHzFifSUZCE cnGD+QDDQyKGxLGePX2IHpHjoCHYDsUQ8AxK7iLPg/acIOAURRep9MagiayZNeoQXSWx ZgLA== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=bEXbmel9v8DBZodwZqloGujldFG8Ju4I8Lm+kj3Y/p4=; b=CyvRqPNonRhb5S9NoKI/l6SjEh6xjWODhQOCTvZrNvn4PowebG86DbBy7eb9efxM/7 riAbK4AvRXAiPguzLN5S4jdLtjJCh6P0KwwedX1tLmVhzs8Sj70mpOXJcgsQg3Zj47yD 9Oeq1YxQhVd6sJeui6qQI+d9thnPgyykvi4XkC4oA7fFRKQMXUFdNg8717dnN5eIcd2r PbBGhEXh2MxSce70SbFUK0gpdKGL92gEqGkgUYZtJd3xcLw2soKHaWiz6EjXbuUWoAy3 3+3FsUvQ3PICX8N16mXgC6GNmxjmwtEy9uSqqO8VWRRdu8fzk8js0ZJoWDfRssHjoAvr 2KUw== X-Gm-Message-State: AOAM5306RfapetvV1J16TCFJ43m42SShj8lMe7NhdrvXWmM0TGbLkeK7 QaahuuguwthF4drAkYvaVh6Xs8EQ5dc= X-Google-Smtp-Source: ABdhPJxMpO8WNsYXBLqo4QMT8PetDjgmhXraMoqZ8AoemMhfgt9oC4KG2jYEJhMgqJbciezFLIkQ+A== X-Received: by 2002:a05:620a:4156:: with SMTP id k22mr11003940qko.441.1602535010528; Mon, 12 Oct 2020 13:36:50 -0700 (PDT) Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.36.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:36:50 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Oct 2020 16:36:08 -0400 Message-Id: <20201012203609.41647-5-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012203609.41647-1-andriy.gelman@gmail.com> References: <20201012203609.41647-1-andriy.gelman@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 5/6] avformat/rtsp: set return variable in error path 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: Andriy Gelman Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Andriy Gelman In this error path ret still stores the number of bytes read in ffurl_read(). Signed-off-by: Andriy Gelman --- libavformat/rtsp.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e9fca034b4..cb9fc31166 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2503,6 +2503,7 @@ static int rtp_read_header(AVFormatContext *s) av_log(s, AV_LOG_ERROR, "Unable to receive RTP payload type %d " "without an SDP file describing it\n", payload_type); + ret = AVERROR_INVALIDDATA; goto fail; } if (par->codec_type != AVMEDIA_TYPE_DATA) { From patchwork Mon Oct 12 20:36:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andriy Gelman X-Patchwork-Id: 22888 Return-Path: <> Received: from localhost.localdomain (c-71-232-27-28.hsd1.ma.comcast.net. [71.232.27.28]) by smtp.gmail.com with ESMTPSA id p38sm13521826qtb.20.2020.10.12.13.37.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Oct 2020 13:37:03 -0700 (PDT) From: Andriy Gelman X-Google-Original-From: Andriy Gelman To: ffmpeg-devel@ffmpeg.org Cc: Andriy Gelman Subject: [FFmpeg-devel] [PATCH v3 6/6] avformat/rtsp: don't forget to call ff_network_close() on error Date: Mon, 12 Oct 2020 16:36:09 -0400 Message-Id: <20201012203609.41647-6-andriy.gelman@gmail.com> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201012203609.41647-1-andriy.gelman@gmail.com> References: <20201012203609.41647-1-andriy.gelman@gmail.com> MIME-Version: 1.0 X-TUID: txEBEsIEKPrC List-Id: FFmpeg development discussions and patches From: Andriy Gelman In sdp_read_header() some ff_network_close() calls were missed. Also in rtp_read_header() update comment to explain why a single call to ff_network_close() is enough to cover all cases even if sdp_read_header() returns an error. Signed-off-by: Andriy Gelman --- libavformat/rtsp.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index cb9fc31166..a8c7ec4a46 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2347,11 +2347,14 @@ static int sdp_read_header(AVFormatContext *s) /* read the whole sdp file */ /* XXX: better loading */ content = av_malloc(SDP_MAX_SIZE); - if (!content) + if (!content) { + ff_network_close(); return AVERROR(ENOMEM); + } size = avio_read(s->pb, content, SDP_MAX_SIZE - 1); if (size <= 0) { av_free(content); + ff_network_close(); return AVERROR_INVALIDDATA; } content[size] ='\0'; @@ -2550,7 +2553,9 @@ static int rtp_read_header(AVFormatContext *s) ffio_init_context(&pb, sdp.str, sdp.len, 0, NULL, NULL, NULL, NULL); s->pb = &pb; - /* sdp_read_header initializes this again */ + /* if sdp_read_header() fails then following ff_network_close() cancels out */ + /* ff_network_init() at the start of this function. Otherwise it cancels out */ + /* ff_network_init() inside sdp_read_header() */ ff_network_close(); rt->media_type_mask = (1 << (AVMEDIA_TYPE_SUBTITLE+1)) - 1;