Replace strlen with more secure strnlen in ice_hash_parse_raw_pattern.
Signed-off-by: Vladimir Medvedkin <[email protected]>
tmp
---
drivers/net/ice/ice_hash.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index 6b3095e2c5..aa76718313 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -658,10 +658,13 @@ ice_hash_parse_raw_pattern(struct ice_adapter *ad,
raw_spec = item->spec;
raw_mask = item->mask;
- spec_len = strlen((char *)(uintptr_t)raw_spec->pattern);
- if (strlen((char *)(uintptr_t)raw_mask->pattern) !=
- spec_len)
- return -rte_errno;
+ spec_len = strnlen((char *)(uintptr_t)raw_spec->pattern,
+ raw_spec->length + 1);
+ if (spec_len != raw_spec->length)
+ return -EINVAL;
+ if (strnlen((char *)(uintptr_t)raw_mask->pattern, raw_spec->length + 1)
!=
+ spec_len)
+ return -EINVAL;
pkt_len = spec_len / 2;
--
2.34.1