file filter: Be save against NULL

g_content_type_from_mime_type may return NULL, deal with that.

https://bugzilla.gnome.org/show_bug.cgi?id=782180
This commit is contained in:
Matthias Clasen 2017-05-08 16:35:53 -04:00
parent 7c66c68f48
commit 0f929fb6e3

View File

@ -673,19 +673,21 @@ gtk_file_filter_filter (GtkFileFilter *filter,
switch (rule->type) switch (rule->type)
{ {
case FILTER_RULE_MIME_TYPE: case FILTER_RULE_MIME_TYPE:
if (filter_info->mime_type != NULL) if (filter_info->mime_type != NULL)
{ {
gchar *filter_content_type, *rule_content_type; gchar *filter_content_type, *rule_content_type;
gboolean match; gboolean match;
filter_content_type = g_content_type_from_mime_type (filter_info->mime_type); filter_content_type = g_content_type_from_mime_type (filter_info->mime_type);
rule_content_type = g_content_type_from_mime_type (rule->u.mime_type); rule_content_type = g_content_type_from_mime_type (rule->u.mime_type);
match = g_content_type_is_a (filter_content_type, rule_content_type); match = filter_content_type != NULL &&
g_free (filter_content_type); rule_content_type != NULL &&
g_free (rule_content_type); g_content_type_is_a (filter_content_type, rule_content_type);
g_free (filter_content_type);
g_free (rule_content_type);
if (match) if (match)
return TRUE; return TRUE;
} }
break; break;
case FILTER_RULE_PATTERN: case FILTER_RULE_PATTERN: