Skip to content

Commit e01356e

Browse files
Reject negative blur() values in CSS filter parser
1 parent 56908a7 commit e01356e

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

packages/react-native/ReactCommon/react/renderer/css/CSSFilter.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,13 @@ struct CSSDataTypeParser<CSSBlurFilter> {
7373
}
7474

7575
auto len = parser.parseNextValue<CSSLength>();
76-
return CSSBlurFilter{std::holds_alternative<CSSLength>(len) ? std::get<CSSLength>(len) : CSSLength{}};
76+
if (std::holds_alternative<CSSLength>(len)) {
77+
if (std::get<CSSLength>(len).value < 0.0f) {
78+
return {};
79+
}
80+
return CSSBlurFilter{std::get<CSSLength>(len)};
81+
}
82+
return CSSBlurFilter{};
7783
}
7884
};
7985

packages/react-native/ReactCommon/react/renderer/css/tests/CSSFilterTest.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ TEST(CSSFilter, blur_default) {
3232
EXPECT_EQ(std::get<CSSBlurFilter>(value).amount.unit, CSSLengthUnit::Px);
3333
}
3434

35+
TEST(CSSFilter, blur_negative) {
36+
auto value = parseCSSProperty<CSSFilterFunction>("blur(-1px)");
37+
EXPECT_TRUE(std::holds_alternative<std::monostate>(value));
38+
}
39+
3540
TEST(CSSFilter, blur_number) {
3641
auto value = parseCSSProperty<CSSFilterFunction>("blur(10)");
3742
EXPECT_TRUE(std::holds_alternative<std::monostate>(value));

0 commit comments

Comments
 (0)