diff options
| -rw-r--r-- | core/jni/android_hardware_Radio.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/core/jni/android_hardware_Radio.cpp b/core/jni/android_hardware_Radio.cpp index 42ceec416590..397e67bab488 100644 --- a/core/jni/android_hardware_Radio.cpp +++ b/core/jni/android_hardware_Radio.cpp @@ -313,12 +313,14 @@ static jint convertProgramInfoFromNative(JNIEnv *env, ALOGV("%s", __FUNCTION__); int jStatus; jobject jMetadata = NULL; - if (nProgramInfo->metadata != NULL) { - ALOGV("%s metadata %p", __FUNCTION__, nProgramInfo->metadata); - jStatus = convertMetadataFromNative(env, &jMetadata, nProgramInfo->metadata); - if (jStatus < 0) { - return jStatus; - } + + if (nProgramInfo == nullptr || nProgramInfo->metadata == nullptr) { + return (jint)RADIO_STATUS_BAD_VALUE; + } + + jStatus = convertMetadataFromNative(env, &jMetadata, nProgramInfo->metadata); + if (jStatus < 0) { + return jStatus; } ALOGV("%s channel %d tuned %d", __FUNCTION__, nProgramInfo->channel, nProgramInfo->tuned); |