From: Michael Schroeder Date: Fri, 13 Dec 2013 13:52:21 +0000 (+0100) Subject: repo_autopattern: make sure that the category is valid utf8 X-Git-Tag: 0.6.4~136 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a55cde2e9b2692e20dfc8c5bc1770d10410256d1;p=thirdparty%2Flibsolv.git repo_autopattern: make sure that the category is valid utf8 --- diff --git a/ext/repo_autopattern.c b/ext/repo_autopattern.c index c189cff1..5a663ba8 100644 --- a/ext/repo_autopattern.c +++ b/ext/repo_autopattern.c @@ -180,7 +180,14 @@ repo_add_autopattern(Repo *repo, int flags) langtag = SOLVABLE_CATEGORY; if (*lang && strcmp(lang, "en") != 0) langtag = pool_id2langid(pool, SOLVABLE_CATEGORY, lang, 1); - repodata_set_str(data, s2 - pool->solvables, langtag, newname); + if (newname[solv_validutf8(newname)] == 0) + repodata_set_str(data, s2 - pool->solvables, langtag, newname); + else + { + char *ustr = solv_latin1toutf8(newname); + repodata_set_str(data, s2 - pool->solvables, langtag, ustr); + solv_free(ustr); + } } else if (!strcmp(pn, "pattern-includes()") && evr) repodata_add_poolstr_array(data, s2 - pool->solvables, SOLVABLE_INCLUDES, pool_tmpjoin(pool, "pattern:", newname, 0));