Valgrind about Qt-client in S3_0, with Russian locale:
==3200447== Conditional jump or move depends on uninitialised value(s)
==3200447== at 0x4845818: strlen (vg_replace_strmem.c:494)
==3200447== by 0x2DF7CE: QString (qstring.h:836)
==3200447== by 0x2DF7CE: fc_client::update_server_list(server_scan_type, server_list const*) (pages.cpp:929)
==3200447== by 0x2DFB37: check_server_scan (pages.cpp:1039)
==3200447== by 0x2DFB37: fc_client::check_server_scan(server_scan*) (pages.cpp:1020)
I assume this means that 'strncpy(buf, _("Unknown"), sizeof(buf) - 1);' has not NULL-terminated the string, for it being too long to fit in to the buf. That '-1' seems like the intention was to always add the terminator there, but the code doesn't do that.
Valgrind about Qt-client in S3_0, with Russian locale:
==3200447== Conditional jump or move depends on uninitialised value(s)
==3200447== at 0x4845818: strlen (vg_replace_strmem.c:494)
==3200447== by 0x2DF7CE: QString (qstring.h:836)
==3200447== by 0x2DF7CE: fc_client::update_server_list(server_scan_type, server_list const*) (pages.cpp:929)
==3200447== by 0x2DFB37: check_server_scan (pages.cpp:1039)
==3200447== by 0x2DFB37: fc_client::check_server_scan(server_scan*) (pages.cpp:1020)
I assume this means that 'strncpy(buf, _("Unknown"), sizeof(buf) - 1);' has not NULL-terminated the string, for it being too long to fit in to the buf. That '-1' seems like the intention was to always add the terminator there, but the code doesn't do that.