[dpdk-dev] memalloc: fix potential underflow on mem size calculation
Checks
Commit Message
If total memory is already bigger than max memory, an underflow
will occur on subtraction. Fix it by simply stopping whenever
we already have amount of memory that is bigger than maximum.
Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
Cc: anatoly.burakov@intel.com
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/common/eal_common_memory.c | 3 +++
1 file changed, 3 insertions(+)
Comments
03/05/2018 15:03, Anatoly Burakov:
> If total memory is already bigger than max memory, an underflow
> will occur on subtraction. Fix it by simply stopping whenever
> we already have amount of memory that is bigger than maximum.
>
> Fixes: 66cc45e293ed ("mem: replace memseg with memseg lists")
> Cc: anatoly.burakov@intel.com
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Applied, thanks
@@ -429,6 +429,9 @@ memseg_primary_init(void)
break;
#endif
+ if (total_mem >= max_mem)
+ break;
+
max_type_mem = RTE_MIN(max_mem - total_mem,
(uint64_t)RTE_MAX_MEM_MB_PER_TYPE << 20);
max_segs = RTE_MAX_MEMSEG_PER_TYPE;