Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c2f65901 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "usb: pd: avoid out-of-bounds access when reading PDOs"

parents 7a5d5732 e9e1f133
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -2302,8 +2302,11 @@ static void usbpd_sm(struct work_struct *w)
					&val);

			/* save the PDOs so userspace can further evaluate */
			memcpy(&pd->received_pdos, rx_msg->payload,
			memset(&pd->received_pdos, 0,
					sizeof(pd->received_pdos));
			memcpy(&pd->received_pdos, rx_msg->payload,
					min_t(size_t, rx_msg->data_len,
						sizeof(pd->received_pdos)));
			pd->src_cap_id++;

			usbpd_set_state(pd, PE_SNK_EVALUATE_CAPABILITY);
@@ -2411,8 +2414,11 @@ static void usbpd_sm(struct work_struct *w)
	case PE_SNK_READY:
		if (IS_DATA(rx_msg, MSG_SOURCE_CAPABILITIES)) {
			/* save the PDOs so userspace can further evaluate */
			memcpy(&pd->received_pdos, rx_msg->payload,
			memset(&pd->received_pdos, 0,
					sizeof(pd->received_pdos));
			memcpy(&pd->received_pdos, rx_msg->payload,
					min_t(size_t, rx_msg->data_len,
						sizeof(pd->received_pdos)));
			pd->src_cap_id++;

			usbpd_set_state(pd, PE_SNK_EVALUATE_CAPABILITY);