hal: Add NULL checks and fix data initialization errors.
Add proper checks to fix NULL pointer dereference issues and fix data initialization errors.
CRs-Fixed: 2125325
Change-Id: I7ecf4381c106f10bd601299654fca5de583010ad
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 0f82a38..2d5290e 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2316,6 +2316,12 @@
{
int ret = 0;
struct audio_usecase *uc_info;
+
+ if (in == NULL) {
+ ALOGE("%s: stream_in ptr is NULL", __func__);
+ return -EINVAL;
+ }
+
struct audio_device *adev = in->dev;
ALOGV("%s: enter: usecase(%d: %s)", __func__,
@@ -5187,6 +5193,12 @@
size_t bytes)
{
struct stream_in *in = (struct stream_in *)stream;
+
+ if (in == NULL) {
+ ALOGE("%s: stream_in ptr is NULL", __func__);
+ return -EINVAL;
+ }
+
struct audio_device *adev = in->dev;
int ret = -1;
size_t bytes_read = 0;
@@ -6891,6 +6903,11 @@
/* Disable echo reference while closing input stream */
platform_set_echo_reference(adev, false, AUDIO_DEVICE_NONE);
+ if (in == NULL) {
+ ALOGE("%s: audio_stream_in ptr is NULL", __func__);
+ return;
+ }
+
if (in->usecase == USECASE_COMPRESS_VOIP_CALL) {
pthread_mutex_lock(&adev->lock);
ret = voice_extn_compress_voip_close_input_stream(&stream->common);