diff options
author | woglinde <woglinde@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-08-15 17:38:07 +0000 |
---|---|---|
committer | woglinde <woglinde@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2014-08-15 17:38:07 +0000 |
commit | 6a087992b468a61f977a7e4399e637ba33ffe895 (patch) | |
tree | 0f42a2c0db281e9cd80de4476d96b898e2ee78f3 /navit/search.c | |
parent | 1cf6b95c8bdc7eb37fe0599e76dce8a9574933bd (diff) | |
download | navit-6a087992b468a61f977a7e4399e637ba33ffe895.tar.gz |
Fix:core:guard search_list_select against negative values from search_list_level found by coverity
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5873 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/search.c')
-rw-r--r-- | navit/search.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/navit/search.c b/navit/search.c index 5f327959c..cee831308 100644 --- a/navit/search.c +++ b/navit/search.c @@ -379,16 +379,21 @@ search_list_search(struct search_list *this_, struct attr *search_attr, int part struct search_list_common * search_list_select(struct search_list *this_, enum attr_type attr_type, int id, int mode) { - int level=search_list_level(attr_type); - int num=0; + int level; + int num; struct search_list_level *le; struct search_list_common *slc; GList *curr; + + level = search_list_level(attr_type); + if (level < 0) + return NULL; le=&this_->levels[level]; curr=le->list; if (mode > 0 || !id) le->selected=mode; //dbg(0,"enter level=%d %d %d %p\n", level, id, mode, curr); + num = 0; while (curr) { num++; if (! id || num == id) { |