From patchwork Fri Mar 30 05:08:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 8236 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp2483328jad; Thu, 29 Mar 2018 22:08:54 -0700 (PDT) X-Google-Smtp-Source: AIpwx4/TRHTIPn1tW20u+xfukQxK8c4OkpzaVUYAJbSVR6vjwxi9bR9EZdMKFE2usIBZDvikcsCb X-Received: by 10.223.142.13 with SMTP id n13mr7857559wrb.133.1522386534787; Thu, 29 Mar 2018 22:08:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1522386534; cv=none; d=google.com; s=arc-20160816; b=OiGiFWcKV86WnrWhx1ikdjxkHMZFSuGyP+H4ZSQzXHOa1dii+PE1dJwPZrZmPVKgnO OSwwLw8qRPcO+QMpg90102EfPqV8B4hwUEVQ8Qd+tApoFOsjlG2vPGAUGGWZ8q7xM1VD VPKPHmD6b73MqvhcBaITubjhcazs6tfWZyTEJr+fXZTxlYvOKMt/i7I4nNBSNQc3XZDP f/PZbjXfq/tOkCYkXp3D/GVB02JrkQeAlW7tsJk4woTVYfkTRoVNsMW3Y71z1z/8qAQi gaKlr7QYboh6wyV1VtrwCIWR9Y5RQ4l1raEl1CmKWtdZLteapTPOK+O5NwWHxK8vGVXU D5bQ== 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:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:feedback-id:message-id:date:to:from :dkim-signature:delivered-to:arc-authentication-results; bh=Ay4iFCn9k2YvGjve7ctMT+jdlJh9moPKQgJq6zl7jpE=; b=hbCQLzzh3iJu7uw494nXvlvym/kH26V+3ln7D/l7Ks+xYO2gV+MFjyyrlrYJFH6LOf lMx4fW7SS1jrbyIbmNJGfpMuoyK9XixHAeNXayBaPWdwXJJX3OImvSY4oY51Ni8Hbgvj YggbNfm5Sw9HYXSvmOtqkRo1hTL5msRQC5HHdbE95MAsKf+VRbgqu5fvcHEjBKg5DiMx dpJiNd+fwRQgztZxy0rS46kKf+F/qz9X59O13jlhYGOD8vaPkD4RngrHLIOIhSzII4fF OD5t2kGG90IhsNV7kGULDxQmqRL2tozSjgnNtQJUW73/shy3yejrLwsVp05CSt2hdM9l VNJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=cfMOPlUZ; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j75si2542594wmj.103.2018.03.29.22.08.54; Thu, 29 Mar 2018 22:08:54 -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=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=cfMOPlUZ; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3E52B689F78; Fri, 30 Mar 2018 08:08:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a2i831.smtp2go.com (a2i831.smtp2go.com [103.47.207.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 091C8689CCB for ; Fri, 30 Mar 2018 08:08:19 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1522387423; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=3Avt4bs20VdZR2JCloCQd0QNnuZsn1VrbGTq9oEO2a4=; b=cfMOPlUZ GqXPFbPTWkkXsOGWprN0t70DCfOtuaIrPBU5PVQkR9Ql2UH+fdQPs0TXcww8DmKJUzlK4yBHdy1kq 9eUDhOX89W0Tj3/dAyUOITKTDFrhPJWT9AtxKyk27K1aG+8XTJhnGwFBPGxwif7Yjnb/WLAiwnOh/ a3CHYNu5fPrpzwG7EjZtAVzwJ8DxnRKD7bnYj23QMEbRepIqqsQqeenvRA2D3AACZ2rO2BXyfZ25e orN10grF7IrMjxOlDLOxcZKYvaHExqMTlV8H4YJj7OHuEyGXB0xo2HrT5/YWlS4XGFoLsPL4eMNbP LMB0KBBdjKAwDPrL1wnUtuYfMg==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 Mar 2018 10:38:26 +0530 Message-Id: <1522386506-16299-1-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 X-Smtpcorp-Track: 1f1XHURyIQqy9N.vYZQe5mKY Feedback-ID: 337386m:337386asVRLGB:337386sVtn9Srfku:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 3/8] avformat/dashenc: handling errors for dashenc_io_open and dashenc_io_close 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: Vishwanath Dixit MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Vishwanath Dixit --- libavformat/dashenc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index c0fe0a5..4c8fc6f 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -143,6 +143,8 @@ static int dashenc_io_open(AVFormatContext *s, AVIOContext **pb, char *filename, URLContext *http_url_context = ffio_geturlcontext(*pb); av_assert0(http_url_context); err = ff_http_do_new_request(http_url_context, filename); + if (err < 0) + ff_format_io_close(s, pb); #endif } return err; @@ -152,6 +154,11 @@ static void dashenc_io_close(AVFormatContext *s, AVIOContext **pb, char *filenam DASHContext *c = s->priv_data; int http_base_proto = filename ? ff_is_http_proto(filename) : 0; + if (!*pb) { + av_log(s, AV_LOG_WARNING, "NULL AVIOContext\n"); + return; + } + if (!http_base_proto || !c->http_persistent) { ff_format_io_close(s, pb); #if CONFIG_HTTP_PROTOCOL @@ -411,7 +418,12 @@ static void output_segment_list(OutputStream *os, AVIOContext *out, AVFormatCont snprintf(temp_filename_hls, sizeof(temp_filename_hls), use_rename ? "%s.tmp" : "%s", filename_hls); set_http_options(&http_opts, c); - dashenc_io_open(s, &c->m3u8_out, temp_filename_hls, &http_opts); + ret = dashenc_io_open(s, &c->m3u8_out, temp_filename_hls, &http_opts); + if (ret < 0) { + av_log(s, AV_LOG_ERROR, "Unable to open %s for writing %d\n", + temp_filename_hls, ret); + return; + } av_dict_free(&http_opts); for (i = start_index; i < os->nb_segments; i++) { Segment *seg = os->segments[i];