mem: fix use after free in legacy mem init
authorAnatoly Burakov <anatoly.burakov@intel.com>
Tue, 6 Nov 2018 14:13:29 +0000 (14:13 +0000)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 6 Nov 2018 23:06:38 +0000 (00:06 +0100)
commit4531d096d105a9ef65c516fc59e86fc0c56e46cc
treee0c7fb58e68fdc98c0101d92c83441bc4d8d5669
parent9252e81a9fc31fcad44132fde54b2e9cf8cb658f
mem: fix use after free in legacy mem init

Adding an additional failure path in DMA mask check has exposed an
issue where `hugepage` pointer may point to memory that has already
been unmapped, but pointer value is still not NULL, so failure
handler will attempt to unmap it second time if DMA mask check
fails. Fix it by setting `hugepage` pointer to NULL once it is no
longer needed.

Coverity issue: 325730
Fixes: 165c89b84538 ("mem: use DMA mask check for legacy memory")

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/linuxapp/eal/eal_memory.c