OSDN Git Service

Fix OOB read in avrc_ctrl_pars_vendor_rsp
authorHansong Zhang <hsz@google.com>
Mon, 6 Aug 2018 21:40:37 +0000 (14:40 -0700)
committerVasyl Gello <vasek.gello@gmail.com>
Mon, 8 Oct 2018 08:41:59 +0000 (11:41 +0300)
Bug: 78526423
Test: manual
Change-Id: I0eeacc6a25b12f4b999098375d0d032cfa462a91
(cherry picked from commit d945ada503ed9c9ea24e092df51faba57f5d589a)

stack/avrc/avrc_pars_ct.c

index d79d85b..e68136e 100644 (file)
@@ -251,6 +251,12 @@ static tAVRC_STS avrc_ctrl_pars_vendor_rsp(
             break;
         }
         BE_STREAM_TO_UINT8(p_result->list_app_values.num_val, p);
+        if (p_result->list_app_values.num_val > AVRC_MAX_APP_ATTR_SIZE)
+        {
+            android_errorWriteLog(0x534e4554, "78526423");
+            p_result->list_app_values.num_val = AVRC_MAX_APP_ATTR_SIZE;
+        }
+
         AVRC_TRACE_DEBUG("%s value count = %d ", __func__, p_result->list_app_values.num_val);
         for(int xx = 0; xx < p_result->list_app_values.num_val; xx++)
         {