(SYSTEM: ArchLinux - current version, gpgme version 1.12.0)
Type : Memory Leak
Risk: low
Desc:
The function "gpgme_pubkey_algo_string()" calls in the last two cases
strdup and generate a new string. This string will never be freed.
strdup() calls malloc internally. If the given memoryspace will
not be freed, gpgme will likely running out of memory.
FIX:
(line number 1001 and following) ... - xjson_AddStringToObject0 (result, "pubkey_algo_string", gpgme_pubkey_algo_string (sub)); ... + char * tmp = gpgme_pubkey_algo_string (sub); + xjson_AddStringToObject0 (result, "pubkey_algo_string", + tmp); + free(tmp); + tmp = NULL; ...
found with libFuzzer and ASAN by clang 7.0.1
regards
Sirko Höer
Code Intelligence GmbH