mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic
       [not found] <20260730115600.218172-1-grayhat@foxmail.com>
@ 2026-07-30 12:52 ` Shen Yongchao
  2026-07-30 18:08   ` srinivas pandruvada
  2026-07-30 12:52 ` [PATCH v2 2/4] HID: intel-ish-hid: bound report_list iteration to message size Shen Yongchao
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 7+ messages in thread
From: Shen Yongchao @ 2026-07-30 12:52 UTC (permalink / raw)
  To: linux-input
  Cc: Shen Yongchao, Greg Kroah-Hartman, Srinivas Pandruvada,
	Jiri Kosina, Benjamin Tissoires, linux-kernel

Since commit 63cafaf47a83 ("HID: ishtp-hid-client: replace
fake-flex arrays with flex-array members", v6.13), the
HOSTIF_PUBLISH_INPUT_REPORT_LIST handler iterates over sub-reports
using a struct report * pointer:

	report += sizeof(*report) + payload_len;

Because report is a struct report * (not a char *), the compiler
multiplies the advance by sizeof(struct report) = 8, making the
actual stride (8 + payload_len) * 8 bytes instead of the intended
8 + payload_len bytes.  On v6.13+ a legitimate aggregated list
with num_of_reports >= 2 drives the second iteration far outside
the message buffer.

Replace the struct report * iterator with a byte-granular u8 *pos
so the advance is computed in bytes.


Assisted-by: LLM
Signed-off-by: Shen Yongchao <grayhat@foxmail.com>
Fixes: 63cafaf47a83 ("HID: ishtp-hid-client: replace fake-flex arrays with flex-array members")
Cc: stable@vger.kernel.org
---
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index 6d64008f2..ba52e185c 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -74,6 +74,7 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 	int report_type;
 	struct report_list *reports_list;
 	struct report *report;
+	u8 *pos;
 	size_t report_len;
 	struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
 	int curr_hid_dev = client_data->cur_hid_dev;
@@ -280,9 +281,10 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 		case HOSTIF_PUBLISH_INPUT_REPORT_LIST:
 			report_type = HID_INPUT_REPORT;
 			reports_list = (struct report_list *)payload;
-			report = reports_list->reports;
+			pos = (u8 *)reports_list->reports;
 
 			for (j = 0; j < reports_list->num_of_reports; j++) {
+				report = (struct report *)pos;
 				recv_msg = container_of(&report->msg,
 							struct hostif_msg, hdr);
 				report_len = report->size;
@@ -303,7 +305,7 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 						0);
 					}
 
-				report += sizeof(*report) + payload_len;
+				pos += sizeof(struct report) + payload_len;
 			}
 			break;
 		default:
@@ -956,4 +958,4 @@ MODULE_AUTHOR("Daniel Drubin <daniel.drubin@intel.com>");
  */
 MODULE_AUTHOR("Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>");
 
-MODULE_LICENSE("GPL");
+MODULE_LICENSE("GPL");
\ No newline at end of file


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 2/4] HID: intel-ish-hid: bound report_list iteration to message size
       [not found] <20260730115600.218172-1-grayhat@foxmail.com>
  2026-07-30 12:52 ` [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic Shen Yongchao
@ 2026-07-30 12:52 ` Shen Yongchao
  2026-07-30 12:52 ` [PATCH v2 3/4] HID: intel-ish-hid: prevent size_t underflow in report_list parsing Shen Yongchao
  2026-07-30 12:52 ` [PATCH v2 4/4] HID: intel-ish-hid: add full entry bounds check to " Shen Yongchao
  3 siblings, 0 replies; 7+ messages in thread
From: Shen Yongchao @ 2026-07-30 12:52 UTC (permalink / raw)
  To: linux-input
  Cc: Shen Yongchao, Greg Kroah-Hartman, Srinivas Pandruvada,
	Jiri Kosina, Benjamin Tissoires, linux-kernel

num_of_reports is a u8 (up to 255) taken directly from the
firmware message, never compared against the actual payload size.
If the count exceeds the number of sub-reports the payload can
hold, the loop iterates past the receive buffer.

Compute list_end from the outer message payload and break out of
the loop when the next struct report header would fall outside
the message.


Assisted-by: LLM
Signed-off-by: Shen Yongchao <grayhat@foxmail.com>
Fixes: 0b28cb4bcb17 ("HID: intel-ish-hid: ISH HID client driver")
Cc: stable@vger.kernel.org
---
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index ba52e185c..6609130ce 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -75,6 +75,7 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 	struct report_list *reports_list;
 	struct report *report;
 	u8 *pos;
+	u8 *list_end;
 	size_t report_len;
 	struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
 	int curr_hid_dev = client_data->cur_hid_dev;
@@ -282,8 +283,12 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 			report_type = HID_INPUT_REPORT;
 			reports_list = (struct report_list *)payload;
 			pos = (u8 *)reports_list->reports;
+			list_end = (u8 *)payload + payload_len;
 
 			for (j = 0; j < reports_list->num_of_reports; j++) {
+				if (pos + sizeof(struct report) > list_end)
+					break;
+
 				report = (struct report *)pos;
 				recv_msg = container_of(&report->msg,
 							struct hostif_msg, hdr);


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] HID: intel-ish-hid: prevent size_t underflow in report_list parsing
       [not found] <20260730115600.218172-1-grayhat@foxmail.com>
  2026-07-30 12:52 ` [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic Shen Yongchao
  2026-07-30 12:52 ` [PATCH v2 2/4] HID: intel-ish-hid: bound report_list iteration to message size Shen Yongchao
@ 2026-07-30 12:52 ` Shen Yongchao
  2026-07-30 12:52 ` [PATCH v2 4/4] HID: intel-ish-hid: add full entry bounds check to " Shen Yongchao
  3 siblings, 0 replies; 7+ messages in thread
From: Shen Yongchao @ 2026-07-30 12:52 UTC (permalink / raw)
  To: linux-input
  Cc: Shen Yongchao, Greg Kroah-Hartman, Srinivas Pandruvada,
	Jiri Kosina, Benjamin Tissoires, linux-kernel

payload_len is computed as report_len - sizeof(struct
hostif_msg_hdr) where report_len is a firmware-controlled u16
stored in a size_t.  Values 0..5 underflow to ~SIZE_MAX, causing
hid_input_report() to read far past the receive buffer.

Add an explicit check for report_len < sizeof(struct
hostif_msg_hdr) and use a local inner_len variable instead of
overwriting the outer loop's payload_len.


Assisted-by: LLM
Signed-off-by: Shen Yongchao <grayhat@foxmail.com>
Fixes: 0b28cb4bcb17 ("HID: intel-ish-hid: ISH HID client driver")
Cc: stable@vger.kernel.org
---
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index 6609130ce..efe5c5326 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -77,6 +77,7 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 	u8 *pos;
 	u8 *list_end;
 	size_t report_len;
+	size_t inner_len;
 	struct ishtp_cl_data *client_data = ishtp_get_client_data(hid_ishtp_cl);
 	int curr_hid_dev = client_data->cur_hid_dev;
 	struct ishtp_hid_data *hid_data = NULL;
@@ -293,8 +294,11 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 				recv_msg = container_of(&report->msg,
 							struct hostif_msg, hdr);
 				report_len = report->size;
-				payload = recv_msg->payload;
-				payload_len = report_len -
+				if (report_len < sizeof(struct hostif_msg_hdr))
+					break;
+
+
+				inner_len = report_len -
 					sizeof(struct hostif_msg_hdr);
 
 				for (i = 0; i < client_data->num_hid_devices;
@@ -306,11 +310,11 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 						client_data->hid_sensor_hubs[
 									i],
 						report_type,
-						payload, payload_len,
+						recv_msg->payload, inner_len,
 						0);
 					}
 
-				pos += sizeof(struct report) + payload_len;
+				pos += sizeof(struct report) + inner_len;
 			}
 			break;
 		default:


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] HID: intel-ish-hid: add full entry bounds check to report_list parsing
       [not found] <20260730115600.218172-1-grayhat@foxmail.com>
                   ` (2 preceding siblings ...)
  2026-07-30 12:52 ` [PATCH v2 3/4] HID: intel-ish-hid: prevent size_t underflow in report_list parsing Shen Yongchao
@ 2026-07-30 12:52 ` Shen Yongchao
  3 siblings, 0 replies; 7+ messages in thread
From: Shen Yongchao @ 2026-07-30 12:52 UTC (permalink / raw)
  To: linux-input
  Cc: Shen Yongchao, Greg Kroah-Hartman, Srinivas Pandruvada,
	Jiri Kosina, Benjamin Tissoires, linux-kernel

The report iterator is never checked against the receive buffer
boundary after computing the sub-report length, so a crafted
report_len can advance the iterator past the message and
subsequent iterations read from arbitrary out-of-bounds memory.

Add a check that the full entry (struct report header plus
payload) fits within the message before processing it.  Also
switch the reports_list and list_end sources from the stale
outer-loop payload variable to recv_msg->payload, which always
points to the current message.


Assisted-by: LLM
Signed-off-by: Shen Yongchao <grayhat@foxmail.com>
Fixes: 0b28cb4bcb17 ("HID: intel-ish-hid: ISH HID client driver")
Cc: stable@vger.kernel.org
---
diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
index efe5c5326..0ac7be0c4 100644
--- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
+++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
@@ -282,9 +282,9 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 
 		case HOSTIF_PUBLISH_INPUT_REPORT_LIST:
 			report_type = HID_INPUT_REPORT;
-			reports_list = (struct report_list *)payload;
+			reports_list = (struct report_list *)recv_msg->payload;
 			pos = (u8 *)reports_list->reports;
-			list_end = (u8 *)payload + payload_len;
+			list_end = (u8 *)recv_msg->payload + payload_len;
 
 			for (j = 0; j < reports_list->num_of_reports; j++) {
 				if (pos + sizeof(struct report) > list_end)
@@ -300,6 +300,10 @@ static void process_recv(struct ishtp_cl *hid_ishtp_cl, void *recv_buf,
 
 				inner_len = report_len -
 					sizeof(struct hostif_msg_hdr);
+				if (pos + sizeof(struct report) + inner_len >
+						list_end)
+					break;
+
 
 				for (i = 0; i < client_data->num_hid_devices;
 				     ++i)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic
  2026-07-30 12:52 ` [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic Shen Yongchao
@ 2026-07-30 18:08   ` srinivas pandruvada
  2026-07-31  1:39     ` grayhat
  2026-07-31  6:47     ` Zhang, Lixu
  0 siblings, 2 replies; 7+ messages in thread
From: srinivas pandruvada @ 2026-07-30 18:08 UTC (permalink / raw)
  To: Shen Yongchao, linux-input, Zhang Lixu
  Cc: Greg Kroah-Hartman, Jiri Kosina, Benjamin Tissoires, linux-kernel

+Lixu

On Thu, 2026-07-30 at 20:52 +0800, Shen Yongchao wrote:
> Since commit 63cafaf47a83 ("HID: ishtp-hid-client: replace
> fake-flex arrays with flex-array members", v6.13), the
> HOSTIF_PUBLISH_INPUT_REPORT_LIST handler iterates over sub-reports
> using a struct report * pointer:
> 
> 	report += sizeof(*report) + payload_len;
> 
> Because report is a struct report * (not a char *), the compiler
> multiplies the advance by sizeof(struct report) = 8, making the
> actual stride (8 + payload_len) * 8 bytes instead of the intended
> 8 + payload_len bytes.  On v6.13+ a legitimate aggregated list
> with num_of_reports >= 2 drives the second iteration far outside
> the message buffer.
> 
> Replace the struct report * iterator with a byte-granular u8 *pos
> so the advance is computed in bytes.
> 
> 
> Assisted-by: LLM

Need to follow:

https://docs.kernel.org/process/coding-assistants.html

Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]

Lixu,
Please give a test on few devices. Not sure if we have such device.

Thanks,
Srinivas

> Signed-off-by: Shen Yongchao <grayhat@foxmail.com>
> Fixes: 63cafaf47a83 ("HID: ishtp-hid-client: replace fake-flex arrays
> with flex-array members")
> Cc: stable@vger.kernel.org
> ---
> diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
> b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
> index 6d64008f2..ba52e185c 100644
> --- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c
> +++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c
> @@ -74,6 +74,7 @@ static void process_recv(struct ishtp_cl
> *hid_ishtp_cl, void *recv_buf,
>  	int report_type;
>  	struct report_list *reports_list;
>  	struct report *report;
> +	u8 *pos;
>  	size_t report_len;
>  	struct ishtp_cl_data *client_data =
> ishtp_get_client_data(hid_ishtp_cl);
>  	int curr_hid_dev = client_data->cur_hid_dev;
> @@ -280,9 +281,10 @@ static void process_recv(struct ishtp_cl
> *hid_ishtp_cl, void *recv_buf,
>  		case HOSTIF_PUBLISH_INPUT_REPORT_LIST:
>  			report_type = HID_INPUT_REPORT;
>  			reports_list = (struct report_list
> *)payload;
> -			report = reports_list->reports;
> +			pos = (u8 *)reports_list->reports;
>  
>  			for (j = 0; j < reports_list-
> >num_of_reports; j++) {
> +				report = (struct report *)pos;
>  				recv_msg = container_of(&report-
> >msg,
>  							struct
> hostif_msg, hdr);
>  				report_len = report->size;
> @@ -303,7 +305,7 @@ static void process_recv(struct ishtp_cl
> *hid_ishtp_cl, void *recv_buf,
>  						0);
>  					}
>  
> -				report += sizeof(*report) +
> payload_len;
> +				pos += sizeof(struct report) +
> payload_len;
>  			}
>  			break;
>  		default:
> @@ -956,4 +958,4 @@ MODULE_AUTHOR("Daniel Drubin
> <daniel.drubin@intel.com>");
>   */
>  MODULE_AUTHOR("Srinivas Pandruvada
> <srinivas.pandruvada@linux.intel.com>");
>  
> -MODULE_LICENSE("GPL");
> +MODULE_LICENSE("GPL");
> \ No newline at end of file

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Re: [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic
  2026-07-30 18:08   ` srinivas pandruvada
@ 2026-07-31  1:39     ` grayhat
  2026-07-31  6:47     ` Zhang, Lixu
  1 sibling, 0 replies; 7+ messages in thread
From: grayhat @ 2026-07-31  1:39 UTC (permalink / raw)
  To: srinivas pandruvada, linux-input, Zhang Lixu
  Cc: gregkh, Jiri Kosina, Benjamin Tissoires, linux-kernel

Thanks, +Lixu noted.

Corrected tag:

Assisted-by: Hermes:kimi-k3

(The last hunk of that patch is stray -- please discard it; it
removes the trailing newline after MODULE_LICENSE.)

Let me know if you want it resent as a proper [PATCH v2].

Thanks,
Shen Yongchao
>+Lixu


>



>On Thu, 2026-07-30 at 20:52 +0800, Shen Yongchao wrote:



>> Since commit 63cafaf47a83 ("HID: ishtp-hid-client: replace



>> fake-flex arrays with flex-array members", v6.13), the



>> HOSTIF_PUBLISH_INPUT_REPORT_LIST handler iterates over sub-reports



>> using a struct report * pointer:



>> 



>> 	report += sizeof(*report) + payload_len;



>> 



>> Because report is a struct report * (not a char *), the compiler



>> multiplies the advance by sizeof(struct report) = 8, making the



>> actual stride (8 + payload_len) * 8 bytes instead of the intended



>> 8 + payload_len bytes.  On v6.13+ a legitimate aggregated list



>> with num_of_reports >= 2 drives the second iteration far outside



>> the message buffer.



>> 



>> Replace the struct report * iterator with a byte-granular u8 *pos



>> so the advance is computed in bytes.



>> 



>> 



>> Assisted-by: LLM



>



>Need to follow:



>



>https://docs.kernel.org/process/coding-assistants.html



>



>Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]



>



>Lixu,



>Please give a test on few devices. Not sure if we have such device.



>



>Thanks,



>Srinivas



>



>> Signed-off-by: Shen Yongchao <grayhat@foxmail.com>



>> Fixes: 63cafaf47a83 ("HID: ishtp-hid-client: replace fake-flex arrays



>> with flex-array members")



>> Cc: stable@vger.kernel.org



>> ---



>> diff --git a/drivers/hid/intel-ish-hid/ishtp-hid-client.c



>> b/drivers/hid/intel-ish-hid/ishtp-hid-client.c



>> index 6d64008f2..ba52e185c 100644



>> --- a/drivers/hid/intel-ish-hid/ishtp-hid-client.c



>> +++ b/drivers/hid/intel-ish-hid/ishtp-hid-client.c



>> @@ -74,6 +74,7 @@ static void process_recv(struct ishtp_cl



>> *hid_ishtp_cl, void *recv_buf,



>>  	int report_type;



>>  	struct report_list *reports_list;



>>  	struct report *report;



>> +	u8 *pos;



>>  	size_t report_len;



>>  	struct ishtp_cl_data *client_data =



>> ishtp_get_client_data(hid_ishtp_cl);



>>  	int curr_hid_dev = client_data->cur_hid_dev;



>> @@ -280,9 +281,10 @@ static void process_recv(struct ishtp_cl



>> *hid_ishtp_cl, void *recv_buf,



>>  		case HOSTIF_PUBLISH_INPUT_REPORT_LIST:



>>  			report_type = HID_INPUT_REPORT;



>>  			reports_list = (struct report_list



>> *)payload;



>> -			report = reports_list->reports;



>> +			pos = (u8 *)reports_list->reports;



>>  



>>  			for (j = 0; j < reports_list-



>> >num_of_reports; j++) {



>> +				report = (struct report *)pos;



>>  				recv_msg = container_of(&report-



>> >msg,



>>  							struct



>> hostif_msg, hdr);



>>  				report_len = report->size;



>> @@ -303,7 +305,7 @@ static void process_recv(struct ishtp_cl



>> *hid_ishtp_cl, void *recv_buf,



>>  						0);



>>  					}



>>  



>> -				report += sizeof(*report) +



>> payload_len;



>> +				pos += sizeof(struct report) +



>> payload_len;



>>  			}



>>  			break;



>>  		default:



>> @@ -956,4 +958,4 @@ MODULE_AUTHOR("Daniel Drubin



>> <daniel.drubin@intel.com>");



>>   */



>>  MODULE_AUTHOR("Srinivas Pandruvada



>> <srinivas.pandruvada@linux.intel.com>");



>>  



>> -MODULE_LICENSE("GPL");



>> +MODULE_LICENSE("GPL");



>> \ No newline at end of file



^ permalink raw reply	[flat|nested] 7+ messages in thread

* RE: [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic
  2026-07-30 18:08   ` srinivas pandruvada
  2026-07-31  1:39     ` grayhat
@ 2026-07-31  6:47     ` Zhang, Lixu
  1 sibling, 0 replies; 7+ messages in thread
From: Zhang, Lixu @ 2026-07-31  6:47 UTC (permalink / raw)
  To: srinivas pandruvada, Shen Yongchao, linux-input
  Cc: Greg Kroah-Hartman, Jiri Kosina, Benjamin Tissoires, linux-kernel

>-----Original Message-----
>From: srinivas pandruvada <srinivas.pandruvada@linux.intel.com>
>Sent: Friday, July 31, 2026 2:09 AM
>To: Shen Yongchao <grayhat@foxmail.com>; linux-input@vger.kernel.org;
>Zhang, Lixu <lixu.zhang@intel.com>
>Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Jiri Kosina
><jikos@kernel.org>; Benjamin Tissoires <bentiss@kernel.org>; linux-
>kernel@vger.kernel.org
>Subject: Re: [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer
>arithmetic
>
>+Lixu
>
>On Thu, 2026-07-30 at 20:52 +0800, Shen Yongchao wrote:
>> Since commit 63cafaf47a83 ("HID: ishtp-hid-client: replace fake-flex
>> arrays with flex-array members", v6.13), the
>> HOSTIF_PUBLISH_INPUT_REPORT_LIST handler iterates over sub-reports
>> using a struct report * pointer:
>>
>> 	report += sizeof(*report) + payload_len;
>>
>> Because report is a struct report * (not a char *), the compiler
>> multiplies the advance by sizeof(struct report) = 8, making the actual
>> stride (8 + payload_len) * 8 bytes instead of the intended
>> 8 + payload_len bytes.  On v6.13+ a legitimate aggregated list with
>> num_of_reports >= 2 drives the second iteration far outside the
>> message buffer.
>>
>> Replace the struct report * iterator with a byte-granular u8 *pos so
>> the advance is computed in bytes.
>>
>>
>> Assisted-by: LLM
>
>Need to follow:
>
>https://docs.kernel.org/process/coding-assistants.html
>
>Assisted-by: AGENT_NAME:MODEL_VERSION [TOOL1] [TOOL2]
>
>Lixu,
>Please give a test on few devices. Not sure if we have such device.

I checked the firmware side and it does not appear to send
HOSTIF_PUBLISH_INPUT_REPORT_LIST, it batches reports as multiple regular
HOSTIF_PUBLISH_INPUT_REPORT messages in one ISHTP buffer instead.

So I cannot really exercise this specific code path. I only ran some basic sanity
testing on the normal HID report path and did not observe any regression.

Code-wise, the changes look good to me.

Tested-by: Zhang Lixu <lixu.zhang@intel.com>
                                           
Thanks,
Lixu

>
>Thanks,
>Srinivas
>


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-07-31  6:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20260730115600.218172-1-grayhat@foxmail.com>
2026-07-30 12:52 ` [PATCH v2 1/4] HID: intel-ish-hid: fix report_list iterator pointer arithmetic Shen Yongchao
2026-07-30 18:08   ` srinivas pandruvada
2026-07-31  1:39     ` grayhat
2026-07-31  6:47     ` Zhang, Lixu
2026-07-30 12:52 ` [PATCH v2 2/4] HID: intel-ish-hid: bound report_list iteration to message size Shen Yongchao
2026-07-30 12:52 ` [PATCH v2 3/4] HID: intel-ish-hid: prevent size_t underflow in report_list parsing Shen Yongchao
2026-07-30 12:52 ` [PATCH v2 4/4] HID: intel-ish-hid: add full entry bounds check to " Shen Yongchao

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome