SIGSEGV occurred cause by g_convert fail!
zhulu323 opened this issue · comments
Expected behavior
The result should be independent of the charset,No matter UTF-8 or other
Actual behavior
misc/plugutils.c: 349
proto_post_wrapped (const char *oid, struct script_infos *desc, int port,
const char *proto, const char *action, const char *what,
const char uri)
{
''''
'''
/ Convert to UTF-8 before sending to Manager. */
data = g_convert (buffer, -1, "UTF-8", "ISO_8859-1", NULL, &length, NULL); # May fail, cause SIGSEGV
kb = plug_get_kb (desc);
kb_item_push_str (kb, "internal/results", data);
g_free (data);
g_free (buffer);
g_string_free (action_str, TRUE);
}
Here Should not be strongly associated with the character set:
data = g_convert (buffer, -1, "UTF-8", "ISO_8859-1", NULL, &length, NULL); # May fail, cause SIGSEGV
kb = plug_get_kb (desc);
kb_item_push_str (kb, "internal/results", data?data:buffer);
if(data)
g_free (data);
Steps to reproduce
- g_convert fail, cause SIGSEGV
GVM versions
gsa: (gsad --version)
gvm: (gvmd --version)
openvas: (openvas --version)
OpenVAS 21.4.2dev1dev1
gvm-libs 21.4.2
Most new code since 2005: (C) 2021 Greenbone Networks GmbH
Nessus origin: (C) 2004 Renaud Deraison deraison@nessus.org
License GPLv2: GNU GPL version 2
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
gvm-libs:
openvas-smb:
ospd-openvas: (ospd-openvas --version)
Environment
Operating system:
Installation method / source: (packages, source installation)
Logfiles
Hey,
The segfault is now fixed with #996.
Now nothing is pushed into the redis-kb when g_convert fails and a warning is logged.
If you have a example nasl script which makes g_convert fail feel free to post it. Maybe there are additional improvements which can be made.
SIGSEGV already fixed with #996