summaryrefslogtreecommitdiff
path: root/src/libtracker-extract/tracker-encoding-libicu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtracker-extract/tracker-encoding-libicu.c')
-rw-r--r--src/libtracker-extract/tracker-encoding-libicu.c13
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);