diff options
author | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-02-06 21:15:01 +0900 |
---|---|---|
committer | Masahiro Yamada <yamada.masahiro@socionext.com> | 2017-02-11 12:59:16 +0900 |
commit | 762f1ebe8d1b26e78cd4923f832a611c8a5f0a89 (patch) | |
tree | 06997d3046017bdf623e8dddea71fcaa408b0cd9 /lib/psci/psci_common.c | |
parent | bab16f9912c6a2ea7600e8d713c1eebf8f0c11d7 (diff) |
cert_create: fix memory leak bug caused by key container overwrite
In the current code, both key_load() and key_create() call key_new()
to allocate a key container (and they do not free it even if they
fail). If a specific key is not given by the command option,
key_load() fails, then key_create() is called. At this point, the
key container that has been allocated in key_load() is still alive,
and it is overwritten by a new key container created by key_create().
Move the key_new() call to the main() function to make sure it is
called just once for each descriptor.
While we are here, let's fix one more bug; the error handling code
ERROR("Malloc error while loading '%s'\n", keys[i].fn);
is wrong because keys[i].fn is NULL pointer unless a specific key is
given by the command option. This code could be run in either case.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Diffstat (limited to 'lib/psci/psci_common.c')
0 files changed, 0 insertions, 0 deletions