Message ID | 20240828-e810-live-migration-jk-prep-ctx-functions-v2-1-558ab9e240f5@intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Headers | show |
Series | ice: use <linux/packing.h> for Tx and Rx queue context data | expand |
diff --git a/lib/packing.c b/lib/packing.c index 3f656167c17e..439125286d2b 100644 --- a/lib/packing.c +++ b/lib/packing.c @@ -86,8 +86,10 @@ int packing(void *pbuf, u64 *uval, int startbit, int endbit, size_t pbuflen, */ int plogical_first_u8, plogical_last_u8, box; - /* startbit is expected to be larger than endbit */ - if (startbit < endbit) + /* startbit is expected to be larger than endbit, and both are + * expected to be within the logically addressable range of the buffer. + */ + if (unlikely(startbit < endbit || startbit >= 8 * pbuflen || endbit < 0)) /* Invalid function call */ return -EINVAL;