From patchwork Fri Feb 4 16:19:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 34125 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp3545096iov; Fri, 4 Feb 2022 08:20:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwG66g2eDrUzfLoIcOP0diKGa35E/77rkrmQ7m+qpkbFnQbq9lKIYxi6+ZrH5Sl9bJnZwr/ X-Received: by 2002:a17:907:c0e:: with SMTP id ga14mr3273604ejc.139.1643991611102; Fri, 04 Feb 2022 08:20:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643991611; cv=none; d=google.com; s=arc-20160816; b=TPHLQD8YeGXN+u7J3Ow0/1j9NVHHkSmyh73CRVVQCGkwdDbgYXzFy7lwrv160ikLHI sQsrl7GzsYCBQyDeyS3NjKO1nvQMM/ZtNAXhmRg44RXEcpZUK6P73uFxxQHexuRn1WgM O3Dn0GUTWK1OuUU3z+sGAhzw5eEflfZusAAxK6GdfJXZsXMJnxqTEwUzmP26UtA+DtEX 5EO/bW3e7AqMi65oP5RnSoxL3tV28pshJYmiEXR0z5ifLI6P0qrnQ52oJrRsVeu88Msn yrZDv756k2aa7UKLEjGQAdpLBiCynoP1WLvys1ATqcu23fEOdtu/FFciJkdYbbQlab8F Lckw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=IxoZRdWGypTgqqnRChmOjLGzpR0i9IWovkr9rsKfdoU=; b=GZ6Me3A0yfCGUGw3tRnr5CCMesWowHRAnOglueztFzJmDpmnfr19XRMX3igZ/B/He7 L8qOCXvr0tHrPYb23S4UFL7NaWrZiWbLJQ8+j0oozPwvdbdRXtC5cCCBqNVH01ep4ENi PIziNyJF+r0Yj4cTQotM6xiEAw1PiGlnU9PkJOAv6jdnqGCG2Y8xeo5vCG+QbBKfdJzX Xajy5IDcLHXxH8Hr41qgXWO79N+iVOzSA8q/f2OUKLeI4G9EMiFSUYMakb1pKOztUrTy snqy19BeMwtsb3YnqWjha8G5h1i9fof+OdNNt/Vlgp1IZpU4c1lSJIo3x5+iqhsOoeV9 U/3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="Y/+i4P5i"; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a6si1418163edt.233.2022.02.04.08.19.55; Fri, 04 Feb 2022 08:20:11 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b="Y/+i4P5i"; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4806768B220; Fri, 4 Feb 2022 18:19:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-221.mail.qq.com (out203-205-221-221.mail.qq.com [203.205.221.221]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 592E268B12E for ; Fri, 4 Feb 2022 18:19:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1643991578; bh=Zbo8GCTrClTyuG4U6u6b/m07Dl2EwaKMP6immcvU1Kc=; h=From:To:Cc:Subject:Date; b=Y/+i4P5iMGuGgK8os0pXcHJQltFI8KU8XPS3Y/Q+G6f+lIX3vVBJhpgRxGiDCBbgo iXYThTGkPkgLJo8EkXj4nwHJoKjH5F4r8f5OeTPTA9klA8bfw0+E88x5BsA0B4s19m pennbatRt0S4yOW7PgVvstt3ul9KHrug+yXhWhLI= Received: from ZHILIZHAO-MB2.tencent.com ([113.87.128.216]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id 4E53E094; Sat, 05 Feb 2022 00:19:37 +0800 X-QQ-mid: xmsmtpt1643991577tvq8bw1fj Message-ID: X-QQ-XMAILINFO: MbkhVtI1PGVkoBCkTA0eeSBUXz1vdpMIhMzznUQesppFLVF9SFoDbXkZtz7grH rjm4edB3n5oYUO3E+RSDvUfhfWi4FStOGZDlTI3/IP0FW3TYBPhAaDgDA84sPXFoB/Iy8XxFTua7 /8acrICOyzKA4/UI9VHHkogV9nfIU3BYzlGkwL7fv27nenP1rOuPvsdFa+7HQeVYz7eetQzoyIAS YRvBncVxOwsJ+lvjmPQeJx+qGOrCy4JF5ASNbasQqntiRCE0Ss1lih4lV5EshSes2OmdqRPCiHmH uBtS3tMLikSMy2IWQMlVT/lyM4IfuxEfbrhCTq/4r5iWoTFfK+jXd23Gx+j354bZCAWIWubaz78E /P65NZ4tka895nURPNjXsIq6qIsB0TzdBqCOk5IXeL/wpqKi0kWXml1vD3vf7OybEljM5ycrDYzY MOaY8zjZ+ANLIRQtRK2K2N0ktLOURBuKxTSzK8DrAenVJYFRTZ95Swdtz2oMfn+FslcFZe+fxRxV +nmY9+dysWaxqQoVpFz5CJ3NqXv6mrbMCyIyhzWKyTdoMc6ol7Cn6O7TI+ptFiesvHLYBDaI/w27 5R4UIu+QTqlzZi6x14kOZ23QPClxgKZA7p5CtVpHF123UU4+6/pC4pyxBMpLhHolSUsAM8Os3KRP BlWGVhC1w2VaQyqAQTVPT6Zmc9p7Dg6iHacEQ33815y8nxvjuknFbNUMgE+SkEFpNkqwgnCtGONQ pMvy8gGBElVTVGEkvqa8P9iGfta3Plumc3F9zeUZXCkiFEsH8zENCDQc2wo/PuE/uNYX81orcJHI 3aAmsWyx/DQGvdSWL185FagLFuDynT3fYh31jvVEPf07gmy3GpfG31ln31Rbl4r0qxXOUR6SNpLa 6Fy+Na1pXh70fLHRSPZLw= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 5 Feb 2022 00:19:34 +0800 X-OQ-MSGID: <20220204161935.66247-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avdevice/avfoundation: fix memleak 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: zqyIIS1+xMXT --- libavdevice/avfoundation.m | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 0cd6e646d5..2078c4879c 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -106,6 +106,7 @@ typedef struct int audio_device_index; int audio_stream_index; + char *url; char *video_filename; char *audio_filename; @@ -299,6 +300,7 @@ static void destroy_context(AVFContext* ctx) ctx->avf_delegate = NULL; ctx->avf_audio_delegate = NULL; + av_freep(&ctx->url); av_freep(&ctx->audio_buffer); pthread_mutex_destroy(&ctx->frame_lock); @@ -311,14 +313,14 @@ static void destroy_context(AVFContext* ctx) static void parse_device_name(AVFormatContext *s) { AVFContext *ctx = (AVFContext*)s->priv_data; - char *tmp = av_strdup(s->url); + ctx->url = av_strdup(s->url); char *save; - if (tmp[0] != ':') { - ctx->video_filename = av_strtok(tmp, ":", &save); + if (ctx->url[0] != ':') { + ctx->video_filename = av_strtok(ctx->url, ":", &save); ctx->audio_filename = av_strtok(NULL, ":", &save); } else { - ctx->audio_filename = av_strtok(tmp, ":", &save); + ctx->audio_filename = av_strtok(ctx->url, ":", &save); } } From patchwork Fri Feb 4 16:19:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 34126 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2c4e:0:0:0:0 with SMTP id x14csp3545156iov; Fri, 4 Feb 2022 08:20:16 -0800 (PST) X-Google-Smtp-Source: ABdhPJxOxV6CQfXkt0SRKNnLhGdbV1ALT+uLyYWogFnQOrnmFRn2EP9fbI340x0ScShZvcu7EFZm X-Received: by 2002:a05:6402:5110:: with SMTP id m16mr3770589edd.325.1643991616390; Fri, 04 Feb 2022 08:20:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643991616; cv=none; d=google.com; s=arc-20160816; b=KiQ1FBjVl1OPLxpJMOyQps4m4K6dGRJWcyyB+AjXuR0ZJMdSv8G4ZyGLPecNX8Dyg+ 7FYQqS1y/CtNJdp+xVid70/hRF7Fg8C0EJjGBAWjDBE4kT6JRd32cUWRHyRy2bGb4a9N ElDv4+IbLkKSkyIIzRk3mgZj5nUMdgvflUIaQQ6iv2Yc0BuwFh9UZv41DyjGIyjOj/Kx i2pYaQLIcOZ5qan+CDZdX4dEy+tWKFz8L4qC3gMHXinqdnfDbrLj5Z6w8Ppb/6zeFLmF O7+UGEeumqV3Dug+mPZfmrE+zc7UFxiMi0XeEBTdFHYNbexuDyq3mnyOcJG8kv2THtCh 4KUg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=RYMD4/XWe57imPQe8oKmQ9pUFOnlYjXR6EIiR+ZChic=; b=tbjdxXtJj3SIFTkwbaV+lSr+PM3Tnf1Ax9vcfgiffn0iLAXVsR2Cma6uB2rmp1pV4E EqPX+jPkEjvxJFrkq+A8djGC8BYffg5YHK4xQQ7mwFzaLyxIOPs8SBaS5uqK5fjsiHBk ShZ4UGsBIl69UDkXW7ThiE5yoJXw6fZCC0+hLgc/pUapF+or/AbJF39VDqt2jjSklyFZ wyJ7XW0q64SV2440Hv6pSEhu0YO8R8FGX2tYo30kfFGZ172O6uxorhvONDrrsdUiwXlM bbxCQlLW7q7RS0ZqSoGhPcafvkCYA4DuMMLoJVdbU7Txxjl9v1j07TsOvwX31ymfTYPy YVOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=tqdrN+ne; 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=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id sc23si663373ejc.946.2022.02.04.08.20.07; Fri, 04 Feb 2022 08:20:16 -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; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=tqdrN+ne; 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=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8727A68B28F; Fri, 4 Feb 2022 18:19:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-190.mail.qq.com (out203-205-221-190.mail.qq.com [203.205.221.190]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5C00A68B13D for ; Fri, 4 Feb 2022 18:19:43 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1643991579; bh=gl62rx6/VmiXgP4vcuBtTWBSUm328mM5dw6XhH5hb5Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=tqdrN+nelsKNoH8XTLybHi1gQSg5rufwHTrem+u0Jli5JMlHmb0Biu8mmBa9BAhfH ZwcWv5JCwCugPlA1y0r2CTgFVvevPH4fFSrXwV9G2vyn6DAhJA5H2d+aH4aAZwVzCt uOLoyZI4DZr8C1/aG4BYzgMnIKUK2aJIr3LC147c= Received: from ZHILIZHAO-MB2.tencent.com ([113.87.128.216]) by newxmesmtplogicsvrszc6.qq.com (NewEsmtp) with SMTP id 4E53E094; Sat, 05 Feb 2022 00:19:37 +0800 X-QQ-mid: xmsmtpt1643991578tdpsx50lx Message-ID: X-QQ-XMAILINFO: NNYn39Yc17X1OI9XURHAqz79v8OnZoolpzAKUZek7dXvXm7pdW7MAz84z8K8DP 3NBmSVac9ApHvUCXAFNQFbNeIx3Jvf/r2Kqr/oDgrcXKCqaJdmp5Wi6zMFU69IXS6tQCu6tDhbXS yugEQ50MZJyxqYAapH+0x+duq0L6aipRTLGbz23N9+NfgCz2Axl3X+G21qtjDY/RvMwiji3x0DXh AdY9ab3odDpimVgU1sgF9d8C0eMjA6ClDrwpsKHyZMlvCvMSNVtjqLbP+45KE74L1apMC956lzJC jT7bu5Qt1wIxh7J/sCg41mP9WY0iTScA/8HEukexhaP/1bN1NdMVnkNlCUKV0MNEvVDAQGFdQPPc 9JMMb5jrdvgmRVwrIJPqj3+z7a7h0xEyOqNUVbpTpPOYTaMIbS4qrwFlZosl6+n+RwJK/kQV8Zse 22BcZZ9+1IrHH9M7118sOsBViJ4XwvCnLiR/sF7pr7e2d33p03I0ssOmUb62mznWB2bCNtY3NdH8 nxPTN309f9KYNkKof8TkR6Hg9WbrrapSRLfnRUS7ZHw3h9iNoNNv+FSQQKZDVTAOQwtxUJH384nh noHZCFbsROd/Bn/wpbUolgH1DrujtfLL5FBo33U8M4ngmq2YFrIdZE+STRFsfFfRqlEHqZhRxWRC CKX18UGQas0gw2fyhzBzHIg14oxJdq4XMfNYSzHU6Sd7/It/gWMz/ItTAXvWQ0x/485eg+PcKPH1 EEmowSVTCv0+7FbyrIrUw5ci7qRMi2Nu3uRy9CqUYgHywGEM8Xi6pLlLLFHgSqEmk+DRa+Ae+7wb ViN5vU5mW4njk7A8MyUzA73O0rbeKo1pK3q9yT82yQNvQsbamQoFSR9ECdVZkXqhIyn6GsHyoDmg == From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 5 Feb 2022 00:19:35 +0800 X-OQ-MSGID: <20220204161935.66247-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220204161935.66247-1-quinkblack@foxmail.com> References: <20220204161935.66247-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avdevice/avfoundation: check strdup 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 Cc: Zhao Zhili Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hFqj78rue92B --- libavdevice/avfoundation.m | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libavdevice/avfoundation.m b/libavdevice/avfoundation.m index 2078c4879c..8f5e2bd120 100644 --- a/libavdevice/avfoundation.m +++ b/libavdevice/avfoundation.m @@ -310,18 +310,21 @@ static void destroy_context(AVFContext* ctx) } } -static void parse_device_name(AVFormatContext *s) +static int parse_device_name(AVFormatContext *s) { AVFContext *ctx = (AVFContext*)s->priv_data; ctx->url = av_strdup(s->url); char *save; + if (!ctx->url) + return AVERROR(ENOMEM); if (ctx->url[0] != ':') { ctx->video_filename = av_strtok(ctx->url, ":", &save); ctx->audio_filename = av_strtok(NULL, ":", &save); } else { ctx->audio_filename = av_strtok(ctx->url, ":", &save); } + return 0; } /** @@ -760,6 +763,7 @@ static int get_audio_config(AVFormatContext *s) static int avf_read_header(AVFormatContext *s) { + int ret = 0; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; uint32_t num_screens = 0; AVFContext *ctx = (AVFContext*)s->priv_data; @@ -812,7 +816,9 @@ static int avf_read_header(AVFormatContext *s) } // parse input filename for video and audio device - parse_device_name(s); + ret = parse_device_name(s); + if (ret) + goto fail; // check for device index given in filename if (ctx->video_device_index == -1 && ctx->video_filename) { @@ -1002,6 +1008,8 @@ static int avf_read_header(AVFormatContext *s) fail: [pool release]; destroy_context(ctx); + if (ret) + return ret; return AVERROR(EIO); }