diff --git a/framework/model/input/driver/hdf_infrared.c b/framework/model/input/driver/hdf_infrared.c index 801c86a586934d52901329942a63b4bb24dc01fe..865b10888d0486bc564ee33de6f33a73bfd30391 100644 --- a/framework/model/input/driver/hdf_infrared.c +++ b/framework/model/input/driver/hdf_infrared.c @@ -85,6 +85,11 @@ static void RecvDataHandle(InfraredDriver *infraredDrv, uint32_t data) break; } } + if (i >= (sizeof(g_infraredKeyTable) / sizeof(g_infraredKeyTable[0]))) { + HDF_LOGE("%s: infrared data not found", __func__); + return; + } + input_report_key(infraredDrv->inputDev, g_infraredKeyTable[i].infraredCode, 0); input_sync(infraredDrv->inputDev); }