diff options
author | Marco Nelissen <marcone@google.com> | 2018-04-19 11:02:00 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2018-04-19 12:33:36 -0700 |
commit | 59cf9aa283425a8206e6eb95f7d180db8c3f4bc9 (patch) | |
tree | 648914e57ce4da532d3ca422803a05fb927139fd /media/jni/android_media_MediaCodec.cpp | |
parent | 575fc02edf86b5394c2385fa6c0567a29042d347 (diff) |
Guard against native crash due to null Surface
Bug: 77874529
Test: record video, mini CTS
Change-Id: I00815fa334a9701e344b263e62549655299013cf
Diffstat (limited to 'media/jni/android_media_MediaCodec.cpp')
-rw-r--r-- | media/jni/android_media_MediaCodec.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp index 000317e688da..16f6284b6031 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> 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); |