diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 000317e688dab..16f6284b60314 100644 --- a/media/jni/android_media_MediaCodec.cpp +++ b/media/jni/android_media_MediaCodec.cpp @@ -1261,6 +1261,11 @@ static void android_media_MediaCodec_setInputSurface( sp persistentSurface = android_media_MediaCodec_getPersistentInputSurface(env, object); + if (persistentSurface == NULL) { + throwExceptionAsNecessary( + env, BAD_VALUE, ACTION_CODE_FATAL, "input surface not valid"); + return; + } status_t err = codec->setInputSurface(persistentSurface); if (err != NO_ERROR) { throwExceptionAsNecessary(env, err);