From b9069af56a3366252bfae07843fc96c89d20a137 Mon Sep 17 00:00:00 2001 From: Dustin Masters Date: Fri, 23 Jun 2017 18:33:54 -0700 Subject: [PATCH] Fix crash when rel tag is empty Fixes #1269 --- lib/rules/jsx-no-target-blank.js | 4 ++-- tests/lib/rules/jsx-no-target-blank.js | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/rules/jsx-no-target-blank.js b/lib/rules/jsx-no-target-blank.js index 75e1805115..1e3cf20f81 100644 --- a/lib/rules/jsx-no-target-blank.js +++ b/lib/rules/jsx-no-target-blank.js @@ -26,8 +26,8 @@ function hasExternalLink(element) { function hasSecureRel(element) { return element.attributes.find(function (attr) { if (attr.name.name === 'rel') { - var tags = attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' '); - return !tags || (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0); + var tags = attr.value && attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' '); + return tags && (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0); } return false; }); diff --git a/tests/lib/rules/jsx-no-target-blank.js b/tests/lib/rules/jsx-no-target-blank.js index d20084ba20..c8ee8f17a6 100644 --- a/tests/lib/rules/jsx-no-target-blank.js +++ b/tests/lib/rules/jsx-no-target-blank.js @@ -69,5 +69,29 @@ ruleTester.run('jsx-no-target-blank', rule, { message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' + ' see https://mathiasbynens.github.io/rel-noopener' }] + }, { + code: '', + errors: [{ + message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' + + ' see https://mathiasbynens.github.io/rel-noopener' + }] + }, { + code: '', + errors: [{ + message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' + + ' see https://mathiasbynens.github.io/rel-noopener' + }] + }, { + code: '', + errors: [{ + message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' + + ' see https://mathiasbynens.github.io/rel-noopener' + }] + }, { + code: '', + errors: [{ + message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' + + ' see https://mathiasbynens.github.io/rel-noopener' + }] }] });