diff options
Diffstat (limited to 'src/libtracker-extract/tracker-encoding-libicu.c')
-rw-r--r-- | src/libtracker-extract/tracker-encoding-libicu.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/libtracker-extract/tracker-encoding-libicu.c b/src/libtracker-extract/tracker-encoding-libicu.c index 13327e353..feec102d2 100644 --- a/src/libtracker-extract/tracker-encoding-libicu.c +++ b/src/libtracker-extract/tracker-encoding-libicu.c @@ -35,6 +35,7 @@ tracker_encoding_guess_icu (const gchar *buffer, const UCharsetMatch *match; gchar *charset = NULL; UErrorCode status; + const char *p_match = NULL; detector = ucsdet_open (&status); @@ -51,15 +52,15 @@ tracker_encoding_guess_icu (const gchar *buffer, match = ucsdet_detect (detector, &status); - if (U_FAILURE (status)) + if (match == NULL || U_FAILURE (status)) goto failure; - charset = g_strdup (ucsdet_getName (match, &status)); + p_match = ucsdet_getName (match, &status); + + if (p_match == NULL || U_FAILURE (status)) + goto failure; - if (U_FAILURE (status)) { - g_free (charset); - charset = NULL; - } + charset = g_strdup ((const gchar *) p_match); if (charset) g_debug ("Guessing charset as '%s'", charset); |