TV: check surface validity before use
Bug: 23118610
Change-Id: I4eede52de3c66e3f1e4fb442724581e01dbd99c3
diff --git a/services/core/jni/com_android_server_tv_TvInputHal.cpp b/services/core/jni/com_android_server_tv_TvInputHal.cpp
index 89b2a47..01acdef 100644
--- a/services/core/jni/com_android_server_tv_TvInputHal.cpp
+++ b/services/core/jni/com_android_server_tv_TvInputHal.cpp
@@ -414,12 +414,9 @@
return NO_ERROR;
}
if (Surface::isValid(connection.mSurface)) {
- connection.mSurface.clear();
- }
- if (connection.mSurface != NULL) {
connection.mSurface->setSidebandStream(NULL);
- connection.mSurface.clear();
}
+ connection.mSurface.clear();
if (connection.mThread != NULL) {
connection.mThread->shutdown();
connection.mThread.clear();
@@ -616,6 +613,9 @@
return BAD_VALUE;
}
sp<Surface> surface(android_view_Surface_getSurface(env, jsurface));
+ if (!Surface::isValid(surface)) {
+ return BAD_VALUE;
+ }
return tvInputHal->addOrUpdateStream(deviceId, streamId, surface);
}