Skip to content

Commit e45cd20

Browse files
committed
Fix segfault when comparing pseudo selectors
Fixes #2289 Spec sass/sass-spec#1052
1 parent 2847edc commit e45cd20

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

src/ast.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,12 @@ namespace Sass {
703703
bool Pseudo_Selector::operator< (const Pseudo_Selector& rhs) const
704704
{
705705
if (is_ns_eq(ns(), rhs.ns()) && name() == rhs.name())
706-
{ return *(expression()) < *(rhs.expression()); }
706+
{
707+
String_Obj lhs_ex = expression();
708+
String_Obj rhs_ex = rhs.expression();
709+
if (rhs_ex && lhs_ex) return *lhs_ex < *rhs_ex;
710+
else return lhs_ex < rhs_ex;
711+
}
707712
if (is_ns_eq(ns(), rhs.ns()))
708713
{ return name() < rhs.name(); }
709714
return ns() < rhs.ns();

0 commit comments

Comments
 (0)