diff --git a/layout/generic/ScrollContainerFrame.cpp b/layout/generic/ScrollContainerFrame.cpp
index 8329ffdaad48..9108e8e6d4dd 100644
--- a/layout/generic/ScrollContainerFrame.cpp
+++ b/layout/generic/ScrollContainerFrame.cpp
@@ -7607,6 +7607,11 @@ ScrollSnapInfo ScrollContainerFrame::ComputeScrollSnapInfo() {
result.InitializeScrollSnapStrictness(writingMode, disp);
result.mSnapportSize = GetSnapportSize();
+ if (result.mSnapportSize.IsEmpty()) {
+ // Ignore any target snap points if the snapport is empty.
+ return result;
+ }
+
CollectScrollPositionsForSnap(
mScrolledFrame, mScrolledFrame, GetScrolledRect(), GetScrollPadding(),
GetLayoutScrollRange(), writingMode, result, &mSnapTargets);
diff --git a/layout/generic/crashtests/1858798.html b/layout/generic/crashtests/1858798.html
new file mode 100644
index 000000000000..2be83f616f26
--- /dev/null
+++ b/layout/generic/crashtests/1858798.html
@@ -0,0 +1,9 @@
+
+