From patchwork Mon Jan 10 16:51:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 33182 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2897565iog; Mon, 10 Jan 2022 08:52:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJx6NJhR/HshU9xUxD289h2u43lF0GHqrz2syFRycS1ThEZxkqqtBTV2pAj51avSTuOVmEHK X-Received: by 2002:a05:6402:350f:: with SMTP id b15mr523686edd.274.1641833565853; Mon, 10 Jan 2022 08:52:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641833565; cv=none; d=google.com; s=arc-20160816; b=AjJfs7xocujUWxBzXA+nSayivIToj7cLknD1e+SyWjMNL8I+uVukLH47bKwkelKuYK m5RgKMyfA5Bi/iAwkyZFpFfLPA75yg3AaurqiDudx+clOla3/z9ONBkXkmgB0IBkcdqm xEkrqNUH5R2E/mlUOJlLBv8hX6qk7nTkTMMZx8D0HeQw1J0i2VpySAVWE4jBOw5vvdtc oW11cOFoj/AESB5prAd6orIyc5XE0qX5MBq/V1pIvHVxT/NSU6nETuAL/7XdpzxTQ3Rs WmoFtYQLELTuSYO7sBe/7J5bWXXBJ8mS5p2zpAc2Ev8expQ8NZjP52e7x+TkBfuRgGlD +jnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :delivered-to; bh=vLyWBus2WRfZvvlCqRB0TXj01Prcmeyg6Rv8Tnht1v0=; b=UDlufXL0mwoJ2HdiH2YWIHb/YTV8fXbnGy6pF3TyJBEEAcYX2TKFZJ8fYZxvk4Hh8e Gsw71XS3eGnDD007AnftTiTrcY2U1dYA2TA9XgOoNLyO6obp6RI2xyjCCZ2JaWxRvQtf pNDssgOPKhJdVWsWeig/n3+JwoZnBzPgilBu1EqjsAmT4lpEM5zipiKzOB4EuOLyMlBO KObulE2FD+6vBoo5OAaKvsa/PTP++oIu7d0hubSGqoFyPRXHB3TEHshegDl1iEyOvBQn IetduoiLmt9o0qLO3LTUonWgtCUD+8S6vsT89sQp1DVFPXscEzBjJOBG3VTKwKkL5f08 u8qg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h14si4319420ede.261.2022.01.10.08.52.43; Mon, 10 Jan 2022 08:52:45 -0800 (PST) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 97BCE68A320; Mon, 10 Jan 2022 18:52:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1DA176803C7 for ; Mon, 10 Jan 2022 18:52:33 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 890D2240506 for ; Mon, 10 Jan 2022 17:52:32 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id Hihf7_5puc_i for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 7461E24017C for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: by libav.khirnov.net (Postfix, from userid 1000) id 4E5B23A0631; Mon, 10 Jan 2022 17:52:31 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 17:51:41 +0100 Message-Id: <20220110165143.2292-1-anton@khirnov.net> X-Mailer: git-send-email 2.33.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/4] lavf/udp: do not return an uninitialized value from udp_open() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: 6r814+Ju3yD6 --- libavformat/udp.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index b8b0e19609..180d96a988 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -739,8 +739,10 @@ static int udp_open(URLContext *h, const char *uri, int flags) /* XXX: fix av_url_split */ if (hostname[0] == '\0' || hostname[0] == '?') { /* only accepts null hostname if input */ - if (!(flags & AVIO_FLAG_READ)) + if (!(flags & AVIO_FLAG_READ)) { + ret = AVERROR(EINVAL); goto fail; + } } else { if ((ret = ff_udp_set_remote_url(h, uri)) < 0) goto fail; @@ -750,8 +752,10 @@ static int udp_open(URLContext *h, const char *uri, int flags) s->local_port = port; udp_fd = udp_socket_create(h, &my_addr, &len, s->localaddr); - if (udp_fd < 0) + if (udp_fd < 0) { + ret = AVERROR(EIO); goto fail; + } s->local_addr_storage=my_addr; //store for future multicast join From patchwork Mon Jan 10 16:51:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 33184 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2897767iog; Mon, 10 Jan 2022 08:53:03 -0800 (PST) X-Google-Smtp-Source: ABdhPJz0dg86dIyG40bRKCHnvxQq/L8ym2HGO3HSgEAaRiL/n2FGDC9mrYGIuxUJYRVZbY9Ga9+k X-Received: by 2002:a05:6402:26c1:: with SMTP id x1mr529132edd.188.1641833583652; Mon, 10 Jan 2022 08:53:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641833583; cv=none; d=google.com; s=arc-20160816; b=NItRT21XSEWnrXPILjc1DzidwFyCG/wnOCAVkf0A4WXKXX8SmOplK4jvneHtpNqQDj voa7IFkyyui3+IOYYzM3KLfjZRCVOZ7M/XE9j07f8y6oVqa1e6C6WEUZjrp/Q2dJ4nPk Qs09rWgwGorPL9kYSu8R9ZnmYmbnqusYHuN0W5ANLTqC2eoB+2ZuJvaH5S6YByIbOz3B TDA+EgFKKqGGRJ2C+cjnBfrQtuqm5LPnR+Je6uPJ0eQy53ETc2pR2/vXTmFB85anX3yT MXZOojhwfNK5M5cev+RNYrg+sqwE+68TH5Mid4TCsa1MZR7DM4AiakJxY8nsQhPI/Nwg k+zA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=YMKZnRX++dxTEu097EGg406j4zP0pV7Vfds7TiH2aTI=; b=A3QzEhSEOFdFUMNRLY0Y/Wc9dclWS41sRIofvMWd0A3C5nZYvHJGbaFNwHmGWilGAr izgMjr0SvdppWzaFeDJ5ZLmNXLczVm4DCkQ5BZiG13E/Yz1GUbZThwPBQySjpIb2v+0B OHQgZJAi8L8BlqQ05z6MT5bXVid7ihHacyjsYJ0nHvF6CU1odSyl97bN6+hBM0KurWqE xRzMDBH6zMzMSynEfezqgw3v0B9Il9lYQU6VhT19Zi68eWudjzv4swT3kOL8DjkdDFNd fNQR+wm5BPRtTA+phgO3vqNs3wFNAsDZS6DA3epRBKjPgQVRIrVS/ci8UtImYzj8tPJC Klvg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e3si4217198ejs.547.2022.01.10.08.53.03; Mon, 10 Jan 2022 08:53:03 -0800 (PST) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9478168ACAE; Mon, 10 Jan 2022 18:52:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A36F6680288 for ; Mon, 10 Jan 2022 18:52:33 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id 39F89240179 for ; Mon, 10 Jan 2022 17:52:33 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id qWCJ8B-OAQCD for ; Mon, 10 Jan 2022 17:52:32 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 7BE1224017E for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: by libav.khirnov.net (Postfix, from userid 1000) id 504373A00BD; Mon, 10 Jan 2022 17:52:31 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 17:51:42 +0100 Message-Id: <20220110165143.2292-2-anton@khirnov.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220110165143.2292-1-anton@khirnov.net> References: <20220110165143.2292-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/4] lavf/udp: log net errors to proper contexts rather than NULL X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: DhZkfu8+K9ck --- libavformat/udp.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/libavformat/udp.c b/libavformat/udp.c index 180d96a988..d1195ceca9 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -159,12 +159,13 @@ static const AVClass udplite_context_class = { }; static int udp_set_multicast_ttl(int sockfd, int mcastTTL, - struct sockaddr *addr) + struct sockaddr *addr, + void *logctx) { #ifdef IP_MULTICAST_TTL if (addr->sa_family == AF_INET) { if (setsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL, &mcastTTL, sizeof(mcastTTL)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IP_MULTICAST_TTL)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_MULTICAST_TTL)"); return ff_neterrno(); } } @@ -172,7 +173,7 @@ static int udp_set_multicast_ttl(int sockfd, int mcastTTL, #if defined(IPPROTO_IPV6) && defined(IPV6_MULTICAST_HOPS) if (addr->sa_family == AF_INET6) { if (setsockopt(sockfd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &mcastTTL, sizeof(mcastTTL)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IPV6_MULTICAST_HOPS)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IPV6_MULTICAST_HOPS)"); return ff_neterrno(); } } @@ -180,7 +181,8 @@ static int udp_set_multicast_ttl(int sockfd, int mcastTTL, return 0; } -static int udp_join_multicast_group(int sockfd, struct sockaddr *addr,struct sockaddr *local_addr) +static int udp_join_multicast_group(int sockfd, struct sockaddr *addr, + struct sockaddr *local_addr, void *logctx) { #ifdef IP_ADD_MEMBERSHIP if (addr->sa_family == AF_INET) { @@ -192,7 +194,7 @@ static int udp_join_multicast_group(int sockfd, struct sockaddr *addr,struct soc else mreq.imr_interface.s_addr = INADDR_ANY; if (setsockopt(sockfd, IPPROTO_IP, IP_ADD_MEMBERSHIP, (const void *)&mreq, sizeof(mreq)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IP_ADD_MEMBERSHIP)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_ADD_MEMBERSHIP)"); return ff_neterrno(); } } @@ -205,7 +207,7 @@ static int udp_join_multicast_group(int sockfd, struct sockaddr *addr,struct soc //TODO: Interface index should be looked up from local_addr mreq6.ipv6mr_interface = 0; if (setsockopt(sockfd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IPV6_ADD_MEMBERSHIP)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IPV6_ADD_MEMBERSHIP)"); return ff_neterrno(); } } @@ -213,7 +215,8 @@ static int udp_join_multicast_group(int sockfd, struct sockaddr *addr,struct soc return 0; } -static int udp_leave_multicast_group(int sockfd, struct sockaddr *addr,struct sockaddr *local_addr) +static int udp_leave_multicast_group(int sockfd, struct sockaddr *addr, + struct sockaddr *local_addr, void *logctx) { #ifdef IP_DROP_MEMBERSHIP if (addr->sa_family == AF_INET) { @@ -225,7 +228,7 @@ static int udp_leave_multicast_group(int sockfd, struct sockaddr *addr,struct so else mreq.imr_interface.s_addr = INADDR_ANY; if (setsockopt(sockfd, IPPROTO_IP, IP_DROP_MEMBERSHIP, (const void *)&mreq, sizeof(mreq)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IP_DROP_MEMBERSHIP)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IP_DROP_MEMBERSHIP)"); return -1; } } @@ -238,7 +241,7 @@ static int udp_leave_multicast_group(int sockfd, struct sockaddr *addr,struct so //TODO: Interface index should be looked up from local_addr mreq6.ipv6mr_interface = 0; if (setsockopt(sockfd, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, &mreq6, sizeof(mreq6)) < 0) { - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(IPV6_DROP_MEMBERSHIP)"); + ff_log_net_error(logctx, AV_LOG_ERROR, "setsockopt(IPV6_DROP_MEMBERSHIP)"); return -1; } } @@ -272,9 +275,9 @@ static int udp_set_multicast_sources(URLContext *h, include ? MCAST_JOIN_SOURCE_GROUP : MCAST_BLOCK_SOURCE, (const void *)&mreqs, sizeof(mreqs)) < 0) { if (include) - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(MCAST_JOIN_SOURCE_GROUP)"); + ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(MCAST_JOIN_SOURCE_GROUP)"); else - ff_log_net_error(NULL, AV_LOG_ERROR, "setsockopt(MCAST_BLOCK_SOURCE)"); + ff_log_net_error(h, AV_LOG_ERROR, "setsockopt(MCAST_BLOCK_SOURCE)"); return ff_neterrno(); } } @@ -352,7 +355,7 @@ static int udp_socket_create(URLContext *h, struct sockaddr_storage *addr, else udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0); if (udp_fd != -1) break; - ff_log_net_error(NULL, AV_LOG_ERROR, "socket"); + ff_log_net_error(h, AV_LOG_ERROR, "socket"); } if (udp_fd < 0) @@ -825,7 +828,7 @@ static int udp_open(URLContext *h, const char *uri, int flags) if (s->is_multicast) { if (h->flags & AVIO_FLAG_WRITE) { /* output */ - if ((ret = udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr)) < 0) + if ((ret = udp_set_multicast_ttl(udp_fd, s->ttl, (struct sockaddr *)&s->dest_addr, h)) < 0) goto fail; } if (h->flags & AVIO_FLAG_READ) { @@ -838,7 +841,8 @@ static int udp_open(URLContext *h, const char *uri, int flags) s->filters.nb_include_addrs, 1)) < 0) goto fail; } else { - if ((ret = udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr,(struct sockaddr *)&s->local_addr_storage)) < 0) + if ((ret = udp_join_multicast_group(udp_fd, (struct sockaddr *)&s->dest_addr, + (struct sockaddr *)&s->local_addr_storage, h)) < 0) goto fail; } if (s->filters.nb_exclude_addrs) { @@ -1083,7 +1087,8 @@ static int udp_close(URLContext *h) #endif if (s->is_multicast && (h->flags & AVIO_FLAG_READ)) - udp_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr,(struct sockaddr *)&s->local_addr_storage); + udp_leave_multicast_group(s->udp_fd, (struct sockaddr *)&s->dest_addr, + (struct sockaddr *)&s->local_addr_storage, h); #if HAVE_PTHREAD_CANCEL if (s->thread_started) { int ret; From patchwork Mon Jan 10 16:51:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 33185 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2897943iog; Mon, 10 Jan 2022 08:53:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJyuD72AKswSldAUrpCKAmyIDWCYJJw2Nz02fwHjje1nFiOBTi02FLpwygvpOL8N7TYd3obL X-Received: by 2002:a17:906:6a0c:: with SMTP id qw12mr502387ejc.620.1641833594108; Mon, 10 Jan 2022 08:53:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641833594; cv=none; d=google.com; s=arc-20160816; b=OJeVltJkQujU5WX7N8mEE3Mq8N6X4KNQXNt2EQkcXNh5GTrP3IKrVVxYESIgzHBXJA dpSMU3wVO7CdVWBHfekI2/V1fKI4I8H0EmkvLSKohRiAIELgg16ghqDdWKYeWwRO9YCA gPT8L2SdBhdXKZNCbY3BGrNtD4uV6dUKW0N5k9/IrU2iliCzsqm7gG+3t8tpmg9d04Sh eavxDM9/W4l9M2hXqbAKEg4avV3A+Dc/sWQoqgBBU7dHYQADA5nDcDDFlloRjyjIjoh3 8kdayCVcnABY4U8U9a9ngUhMuWa9+ZGoaZ0j05GcjCPpUAGwqeO2TyfJXH8nPdFtqV64 Uviw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=NyOAkmx8+D8kKKfVj67HkzwZl3FuuwVFP3mD7bRwJY0=; b=hfohnzlBCrGhEVQdE9EspIRl8L97xjcH/UKylU7O1a/tvPkG7XI2f8Tki9ZTfU6tIY v7FXIf4wWVHj/2nlRNgVBvdRoG3jOmpCg+kQ+1aIDW0Z43EHYk3vbsaDUzMBwfkhW+iL hUj8AQ1PRccmrPLFW2p1MZdmyNJcCq1uxLhMK0iVC0eImuCh7+G0FxwrxzSiJrj2C5dI c06t7bMG7rSYGPLSRppzpqmsy7C3m5bKfcp97Prhy8DEp6a94Nb3pSv1Q6H54A/lus+l VxoXe6uVsp3HbigKz3hA0lJ6ntVeFCYgDoN0ehDBlH7bXmSNlf/eMwIw0JE7XvKALNBV nn5w== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y9si3612419edv.191.2022.01.10.08.53.13; Mon, 10 Jan 2022 08:53:14 -0800 (PST) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 977B668AB9D; Mon, 10 Jan 2022 18:52:42 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4623068ABCA for ; Mon, 10 Jan 2022 18:52:34 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id DB0EF24017E for ; Mon, 10 Jan 2022 17:52:33 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id v_waiy2sJtzh for ; Mon, 10 Jan 2022 17:52:32 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 820B82404FE for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: by libav.khirnov.net (Postfix, from userid 1000) id 553BB3A073E; Mon, 10 Jan 2022 17:52:31 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 17:51:43 +0100 Message-Id: <20220110165143.2292-3-anton@khirnov.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220110165143.2292-1-anton@khirnov.net> References: <20220110165143.2292-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/4] lavf/network: log ff_socket() errors to proper contexts rather than NULL X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: W/qkHmnMEeCP --- libavformat/network.c | 8 ++++---- libavformat/network.h | 2 +- libavformat/sctp.c | 2 +- libavformat/tcp.c | 2 +- libavformat/udp.c | 4 ++-- libavformat/unix.c | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index 0f5a575f77..c3d9f82551 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -180,7 +180,7 @@ static int ff_poll_interrupt(struct pollfd *p, nfds_t nfds, int timeout, return ret; } -int ff_socket(int af, int type, int proto) +int ff_socket(int af, int type, int proto, void *logctx) { int fd; @@ -193,14 +193,14 @@ int ff_socket(int af, int type, int proto) #if HAVE_FCNTL if (fd != -1) { if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1) - av_log(NULL, AV_LOG_DEBUG, "Failed to set close on exec\n"); + av_log(logctx, AV_LOG_DEBUG, "Failed to set close on exec\n"); } #endif } #ifdef SO_NOSIGPIPE if (fd != -1) { if (setsockopt(fd, SOL_SOCKET, SO_NOSIGPIPE, &(int){1}, sizeof(int))) { - av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_NOSIGPIPE) failed\n"); + av_log(logctx, AV_LOG_WARNING, "setsockopt(SO_NOSIGPIPE) failed\n"); } } #endif @@ -363,7 +363,7 @@ static int start_connect_attempt(struct ConnectionAttempt *attempt, *ptr = ai->ai_next; - attempt->fd = ff_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol); + attempt->fd = ff_socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol, h); if (attempt->fd < 0) return ff_neterrno(); attempt->deadline_us = av_gettime_relative() + timeout_ms * 1000; diff --git a/libavformat/network.h b/libavformat/network.h index 71347e815b..d76166faf6 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -305,7 +305,7 @@ int ff_listen_connect(int fd, const struct sockaddr *addr, int ff_http_match_no_proxy(const char *no_proxy, const char *hostname); -int ff_socket(int domain, int type, int protocol); +int ff_socket(int domain, int type, int protocol, void *logctx); void ff_log_net_error(void *ctx, int level, const char* prefix); diff --git a/libavformat/sctp.c b/libavformat/sctp.c index 9a80e9b015..b8e23653d2 100644 --- a/libavformat/sctp.c +++ b/libavformat/sctp.c @@ -220,7 +220,7 @@ static int sctp_open(URLContext *h, const char *uri, int flags) cur_ai = ai; restart: - fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP); + fd = ff_socket(cur_ai->ai_family, SOCK_STREAM, IPPROTO_SCTP, h); if (fd < 0) { ret = ff_neterrno(); goto fail; diff --git a/libavformat/tcp.c b/libavformat/tcp.c index 1c19aed887..84d40a1e11 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -175,7 +175,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) while (cur_ai && fd < 0) { fd = ff_socket(cur_ai->ai_family, cur_ai->ai_socktype, - cur_ai->ai_protocol); + cur_ai->ai_protocol, h); if (fd < 0) { ret = ff_neterrno(); cur_ai = cur_ai->ai_next; diff --git a/libavformat/udp.c b/libavformat/udp.c index d1195ceca9..83c042d079 100644 --- a/libavformat/udp.c +++ b/libavformat/udp.c @@ -351,9 +351,9 @@ static int udp_socket_create(URLContext *h, struct sockaddr_storage *addr, goto fail; for (res = res0; res; res=res->ai_next) { if (s->udplite_coverage) - udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, IPPROTO_UDPLITE); + udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, IPPROTO_UDPLITE, h); else - udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0); + udp_fd = ff_socket(res->ai_family, SOCK_DGRAM, 0, h); if (udp_fd != -1) break; ff_log_net_error(h, AV_LOG_ERROR, "socket"); } diff --git a/libavformat/unix.c b/libavformat/unix.c index 38016dbafe..e668744580 100644 --- a/libavformat/unix.c +++ b/libavformat/unix.c @@ -69,7 +69,7 @@ static int unix_open(URLContext *h, const char *filename, int flags) s->addr.sun_family = AF_UNIX; av_strlcpy(s->addr.sun_path, filename, sizeof(s->addr.sun_path)); - if ((fd = ff_socket(AF_UNIX, s->type, 0)) < 0) + if ((fd = ff_socket(AF_UNIX, s->type, 0, h)) < 0) return ff_neterrno(); if (s->timeout < 0 && h->rw_timeout) From patchwork Mon Jan 10 16:51:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 33183 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2897643iog; Mon, 10 Jan 2022 08:52:53 -0800 (PST) X-Google-Smtp-Source: ABdhPJy3N8SlXr9eoOWJFt6b8363wmAFqJRYtiot7yaUXfs6g6DCpD+vThdylbEFa5VW3hk8bL1Y X-Received: by 2002:a50:d541:: with SMTP id f1mr535366edj.18.1641833573594; Mon, 10 Jan 2022 08:52:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1641833573; cv=none; d=google.com; s=arc-20160816; b=RnYzYShe6xkmDenUIU5i+5VvZm4YjCdhEEAgE0oOhyU58HpOWmSqOxkIODLGmOdHCj DCUUaftm0/miqlkePTzH3eOK7OmWQIlNlxRcbq3fll08s03WFBoD31ss4TbjqVlheEvy tc/YWKS2ibGNmgHdKJ4U3TPbQvOoMKUPIqryfxxlRtcfQhA0eV1YhenS1CHBSXbg88sB WGyxCMW1xw8gaepmCs26H0xCnB+QRmVVNm7+qxIz9C6Q8u+opeLFnvReOlqIcjluiJSd lBAYoyHz1cDEqu4kVEvpzktDaBvgBRaZcMdAW4xPpuCyrD9Gt7S9/z+hyAm8Z+Lymjac Y0fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:delivered-to; bh=i45rNApMtZRGjsnuzh+XLylQnjT26grzsYMwvLuBkFg=; b=i9bYWelpHy/D4NsLOjGyZpKVf2vvIWPOl7zCGzK0GbqCQ1ttlRF5+KmLiZF17SZq+L ioxrx4GHLVjy6UGvGfdiJkieW8kR/gOzGPpsdWk9lYTm8mCrUkVoH37tg+WWNknRkjMT QFqP6l1JdXueSzThWNvlUsQgm/T68/zWPego0qqh9QW59l8c2/QsnBS+u1YUobFsqFFf jiNWiYQRwU3pOjMnz9qJt3g7rzmG98p8cj+51EAtXUDAA7NDKFdlM/2MnKEr2tfzfs2l nD27BC9b6HEjyPSutXijD98JTEhLo325xzGpXqGmoZlPk+EA+SrdvV37R0CjyXdLoiqm K3HQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p4si4204865edj.354.2022.01.10.08.52.53; Mon, 10 Jan 2022 08:52:53 -0800 (PST) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8AD3568AD93; Mon, 10 Jan 2022 18:52:40 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail0.khirnov.net (red.khirnov.net [176.97.15.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2550E68A101 for ; Mon, 10 Jan 2022 18:52:33 +0200 (EET) Received: from localhost (localhost [IPv6:::1]) by mail0.khirnov.net (Postfix) with ESMTP id C109E24017C for ; Mon, 10 Jan 2022 17:52:32 +0100 (CET) Received: from mail0.khirnov.net ([IPv6:::1]) by localhost (mail0.khirnov.net [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id WBn1ctUL9VDO for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail0.khirnov.net (Postfix) with ESMTPS id 5F2B8240179 for ; Mon, 10 Jan 2022 17:52:31 +0100 (CET) Received: by libav.khirnov.net (Postfix, from userid 1000) id 5926C3A0743; Mon, 10 Jan 2022 17:52:31 +0100 (CET) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Mon, 10 Jan 2022 17:51:44 +0100 Message-Id: <20220110165143.2292-4-anton@khirnov.net> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20220110165143.2292-1-anton@khirnov.net> References: <20220110165143.2292-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 4/4] lavf/network: log ff_listen() errors to proper contexts rather than NULL X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: drCtRS+9r1sQ --- libavformat/network.c | 6 +++--- libavformat/network.h | 3 ++- libavformat/tcp.c | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libavformat/network.c b/libavformat/network.c index c3d9f82551..246ffd406d 100644 --- a/libavformat/network.c +++ b/libavformat/network.c @@ -208,12 +208,12 @@ int ff_socket(int af, int type, int proto, void *logctx) } int ff_listen(int fd, const struct sockaddr *addr, - socklen_t addrlen) + socklen_t addrlen, void *logctx) { int ret; int reuse = 1; if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse))) { - av_log(NULL, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n"); + av_log(logctx, AV_LOG_WARNING, "setsockopt(SO_REUSEADDR) failed\n"); } ret = bind(fd, addr, addrlen); if (ret) @@ -247,7 +247,7 @@ int ff_listen_bind(int fd, const struct sockaddr *addr, socklen_t addrlen, int timeout, URLContext *h) { int ret; - if ((ret = ff_listen(fd, addr, addrlen)) < 0) + if ((ret = ff_listen(fd, addr, addrlen, h)) < 0) return ret; if ((ret = ff_accept(fd, timeout, h)) < 0) return ret; diff --git a/libavformat/network.h b/libavformat/network.h index d76166faf6..71c49a73fb 100644 --- a/libavformat/network.h +++ b/libavformat/network.h @@ -271,7 +271,8 @@ int ff_listen_bind(int fd, const struct sockaddr *addr, * @param addrlen Third argument of bind(). * @return 0 on success or an AVERROR on failure. */ -int ff_listen(int fd, const struct sockaddr *addr, socklen_t addrlen); +int ff_listen(int fd, const struct sockaddr *addr, socklen_t addrlen, + void *logctx); /** * Poll for a single connection on the passed file descriptor. diff --git a/libavformat/tcp.c b/libavformat/tcp.c index 84d40a1e11..a11ccbb913 100644 --- a/libavformat/tcp.c +++ b/libavformat/tcp.c @@ -188,7 +188,7 @@ static int tcp_open(URLContext *h, const char *uri, int flags) if (s->listen == 2) { // multi-client - if ((ret = ff_listen(fd, cur_ai->ai_addr, cur_ai->ai_addrlen)) < 0) + if ((ret = ff_listen(fd, cur_ai->ai_addr, cur_ai->ai_addrlen, h)) < 0) goto fail1; } else if (s->listen == 1) { // single client