efi_loader: replace a u16_strdup with alloc + memcpy
authorIlias Apalodimas <ilias.apalodimas@linaro.org>
Fri, 11 Nov 2022 18:04:31 +0000 (20:04 +0200)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Wed, 16 Nov 2022 07:34:06 +0000 (08:34 +0100)
commita930d69baa958d5f308b3910187c5f3c083fe171
tree509da5ad416d05ca0d2151270a093686e594499f
parent64012e0c52eefa6fbfedbad772133a478bd741ea
efi_loader: replace a u16_strdup with alloc + memcpy

Heinrich reports that on RISC-V unaligned access is emulated by OpenSBI
which is very slow.  Performance wise it's better if we skip the calls
to u16_strdup() -- which in turn calls u16_strsize() and just allocate/copy the
memory directly.  The access to dp.length may still be unaligned, but that's
way less than what u16_strsize() would do

Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Use malloc() instead of calloc().
Reviewed-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
lib/efi_loader/efi_file.c