summaryrefslogtreecommitdiff
path: root/gtk/xdgmime/xdgmimeparent.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-11-29 15:39:39 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-11-29 15:39:39 +0000
commita9dc6decd2f71570752f6475e0ee697ffac614ce (patch)
treeb16c47eac49ee8c412dff8cfad9836a1ce1abc26 /gtk/xdgmime/xdgmimeparent.c
parent05ea39152ccc48cb4b3fbb69b67b471baa440710 (diff)
downloadgtk+-a9dc6decd2f71570752f6475e0ee697ffac614ce.tar.gz
Protect against stupid bsearch() implementations. (#159737, Morten
2004-11-29 Matthias Clasen <mclasen@redhat.com> * xdgmimeparent.c (_xdg_mime_parent_list_lookup): * xdgmimealias.c (_xdg_mime_alias_list_lookup): Protect against stupid bsearch() implementations. (#159737, Morten Welinder)
Diffstat (limited to 'gtk/xdgmime/xdgmimeparent.c')
-rw-r--r--gtk/xdgmime/xdgmimeparent.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/gtk/xdgmime/xdgmimeparent.c b/gtk/xdgmime/xdgmimeparent.c
index 9553b4b367..f623fb2d1c 100644
--- a/gtk/xdgmime/xdgmimeparent.c
+++ b/gtk/xdgmime/xdgmimeparent.c
@@ -104,13 +104,16 @@ _xdg_mime_parent_list_lookup (XdgParentList *list,
XdgMimeParents *entry;
XdgMimeParents key;
- key.mime = (char *)mime;
- key.parents = NULL;
-
- entry = bsearch (&key, list->parents, list->n_mimes,
- sizeof (XdgMimeParents), &parent_entry_cmp);
- if (entry)
- return (const char **)entry->parents;
+ if (list->n_mimes > 0)
+ {
+ key.mime = (char *)mime;
+ key.parents = NULL;
+
+ entry = bsearch (&key, list->parents, list->n_mimes,
+ sizeof (XdgMimeParents), &parent_entry_cmp);
+ if (entry)
+ return (const char **)entry->parents;
+ }
return NULL;
}