mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-10-01 06:19:16 +02:00
Add checks to the endpoint and pipe configure functions and fail if the requested endpoint or pipe number is above the maximum for that device.
This commit is contained in:
@@ -202,7 +202,12 @@
|
||||
const uint16_t Size,
|
||||
const uint8_t Banks)
|
||||
{
|
||||
return Endpoint_ConfigureEndpoint_Prv((Address & ENDPOINT_EPNUM_MASK),
|
||||
uint8_t Number = (Address & ENDPOINT_EPNUM_MASK);
|
||||
|
||||
if (Number >= ENDPOINT_TOTAL_ENDPOINTS)
|
||||
return false;
|
||||
|
||||
return Endpoint_ConfigureEndpoint_Prv(Number,
|
||||
((Type << EPTYPE0) | ((Address & ENDPOINT_DIR_IN) ? (1 << EPDIR) : 0)),
|
||||
((1 << ALLOC) | ((Banks > 1) ? (1 << EPBK0) : 0) | Endpoint_BytesToEPSizeMask(Size)));
|
||||
}
|
||||
|
||||
@@ -66,6 +66,9 @@ bool Pipe_ConfigurePipe(const uint8_t Address,
|
||||
uint8_t Number = (Address & PIPE_EPNUM_MASK);
|
||||
uint8_t Token = (Address & PIPE_DIR_IN) ? PIPE_TOKEN_IN : PIPE_TOKEN_OUT;
|
||||
|
||||
if (Number >= PIPE_TOTAL_PIPES)
|
||||
return false;
|
||||
|
||||
if (Type == EP_TYPE_CONTROL)
|
||||
Token = PIPE_TOKEN_SETUP;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user