utils: validate string before g_utf8_next_char()
This commit is contained in:
committed by
Dirk-Jan C. Binnema
parent
c3503ba663
commit
d0a3ca3453
@ -36,6 +36,7 @@
|
||||
|
||||
#include "mu-utils.hh"
|
||||
#include "mu-util.h"
|
||||
#include "mu-str.h"
|
||||
|
||||
using namespace Mu;
|
||||
|
||||
@ -131,8 +132,9 @@ std::string
|
||||
Mu::utf8_clean(const std::string& dirty)
|
||||
{
|
||||
GString* gstr = g_string_sized_new(dirty.length());
|
||||
auto cstr = mu_str_utf8ify(dirty.c_str());
|
||||
|
||||
for (auto cur = dirty.c_str(); cur && *cur; cur = g_utf8_next_char(cur)) {
|
||||
for (auto cur = cstr; cur && *cur; cur = g_utf8_next_char(cur)) {
|
||||
const gunichar uc = g_utf8_get_char(cur);
|
||||
if (g_unichar_iscntrl(uc))
|
||||
g_string_append_c(gstr, ' ');
|
||||
@ -140,6 +142,7 @@ Mu::utf8_clean(const std::string& dirty)
|
||||
g_string_append_unichar(gstr, uc);
|
||||
}
|
||||
|
||||
g_free(cstr);
|
||||
std::string clean(gstr->str, gstr->len);
|
||||
g_string_free(gstr, TRUE);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user