diff options
author | Matthias Clasen <mclasen@redhat.com> | 2004-11-29 15:39:39 +0000 |
---|---|---|
committer | Matthias Clasen <matthiasc@src.gnome.org> | 2004-11-29 15:39:39 +0000 |
commit | a9dc6decd2f71570752f6475e0ee697ffac614ce (patch) | |
tree | b16c47eac49ee8c412dff8cfad9836a1ce1abc26 /gtk/xdgmime/xdgmimeparent.c | |
parent | 05ea39152ccc48cb4b3fbb69b67b471baa440710 (diff) | |
download | gtk+-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.c | 17 |
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; } |