Guard runtime shader/colorfilter against SkSL that doesn't compile
Bug: oss-fuzz:20555
Bug: chromium:1051911
Change-Id: If40137e6cf3c0d398a86023c2399ddb7df10e209
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/270442
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Auto-Submit: Brian Osman <brianosman@google.com>
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 468ff5c..27d8bee 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -491,6 +491,10 @@
}
auto effect = std::get<0>(SkRuntimeEffect::Make(std::move(sksl)));
+ if (!effect) {
+ return nullptr;
+ }
+
return effect->makeColorFilter(std::move(inputs), children.data(), children.size());
}
diff --git a/src/shaders/SkRTShader.cpp b/src/shaders/SkRTShader.cpp
index f5158cd..f1a32ed 100644
--- a/src/shaders/SkRTShader.cpp
+++ b/src/shaders/SkRTShader.cpp
@@ -117,6 +117,10 @@
}
auto effect = std::get<0>(SkRuntimeEffect::Make(std::move(sksl)));
+ if (!effect) {
+ return nullptr;
+ }
+
return effect->makeShader(std::move(inputs), children.data(), children.size(), localMPtr,
isOpaque);
}