From 3c92f0598e6c1628ff50d980a842dd40b2b56813 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Kartnaller?= Date: Tue, 19 Jul 2022 23:30:54 +0200 Subject: [PATCH] fix: exception if on early adError (#4362) If onAdError is called before onAdStart_ then onAdComplete_ uses this.ad_ which is undefined. This can happen if a VAST XML file contains no ads. Fixes #4004 --- AUTHORS | 1 + CONTRIBUTORS | 1 + lib/ads/client_side_ad_manager.js | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 68f95f3f49..0967029995 100644 --- a/AUTHORS +++ b/AUTHORS @@ -43,6 +43,7 @@ Johan Sundström Jonas Birmé Jozef Chúťka Jun Hong Chong +Jürgen Kartnaller JW Player <*@jwplayer.com> Lucas Gabriel Sánchez Matthias Van Parijs diff --git a/CONTRIBUTORS b/CONTRIBUTORS index a11413fd7d..29adac99d2 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -70,6 +70,7 @@ Jono Ward Jozef Chúťka Julian Domingo Jun Hong Chong +Jürgen Kartnaller Leandro Ribeiro Moreira Lucas Gabriel Sánchez Matias Russitto diff --git a/lib/ads/client_side_ad_manager.js b/lib/ads/client_side_ad_manager.js index c24e528101..612ae97d26 100644 --- a/lib/ads/client_side_ad_manager.js +++ b/lib/ads/client_side_ad_manager.js @@ -427,7 +427,7 @@ shaka.ads.ClientSideAdManager = class { onAdComplete_(e) { this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED, (new Map()).set('originalEvent', e))); - if (this.ad_.isLinear()) { + if (this.ad_ && this.ad_.isLinear()) { this.adContainer_.removeAttribute('ad-active'); this.video_.play(); }