Skip to content

Commit e670022

Browse files
authored
Merge pull request #1271 from dustinsoftware/issue-1269
Fix crash when rel tag is empty
2 parents 5a55e16 + b9069af commit e670022

File tree

2 files changed

+26
-2
lines changed

2 files changed

+26
-2
lines changed

lib/rules/jsx-no-target-blank.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ function hasExternalLink(element) {
2626
function hasSecureRel(element) {
2727
return element.attributes.find(function (attr) {
2828
if (attr.name.name === 'rel') {
29-
var tags = attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' ');
30-
return !tags || (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0);
29+
var tags = attr.value && attr.value.type === 'Literal' && attr.value.value.toLowerCase().split(' ');
30+
return tags && (tags.indexOf('noopener') >= 0 && tags.indexOf('noreferrer') >= 0);
3131
}
3232
return false;
3333
});

tests/lib/rules/jsx-no-target-blank.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,29 @@ ruleTester.run('jsx-no-target-blank', rule, {
6969
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
7070
' see https://mathiasbynens.github.io/rel-noopener'
7171
}]
72+
}, {
73+
code: '<a target="_blank" href="//example.com" rel={true}></a>',
74+
errors: [{
75+
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
76+
' see https://mathiasbynens.github.io/rel-noopener'
77+
}]
78+
}, {
79+
code: '<a target="_blank" href="//example.com" rel={3}></a>',
80+
errors: [{
81+
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
82+
' see https://mathiasbynens.github.io/rel-noopener'
83+
}]
84+
}, {
85+
code: '<a target="_blank" href="//example.com" rel={null}></a>',
86+
errors: [{
87+
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
88+
' see https://mathiasbynens.github.io/rel-noopener'
89+
}]
90+
}, {
91+
code: '<a target="_blank" href="//example.com" rel></a>',
92+
errors: [{
93+
message: 'Using target="_blank" without rel="noopener noreferrer" is a security risk:' +
94+
' see https://mathiasbynens.github.io/rel-noopener'
95+
}]
7296
}]
7397
});

0 commit comments

Comments
 (0)