summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwoglinde <woglinde@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-08-15 17:38:07 +0000
committerwoglinde <woglinde@ffa7fe5e-494d-0410-b361-a75ebd5db220>2014-08-15 17:38:07 +0000
commit6a087992b468a61f977a7e4399e637ba33ffe895 (patch)
tree0f42a2c0db281e9cd80de4476d96b898e2ee78f3
parent1cf6b95c8bdc7eb37fe0599e76dce8a9574933bd (diff)
downloadnavit-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
-rw-r--r--navit/search.c9
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) {