summaryrefslogtreecommitdiff
path: root/navit/attr.c
diff options
context:
space:
mode:
authorsleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-06-30 23:07:02 +0000
committersleske <sleske@ffa7fe5e-494d-0410-b361-a75ebd5db220>2013-06-30 23:07:02 +0000
commit3c2bc532366491895273f23ac3fea1cee9a127e1 (patch)
tree08ede3ab3abe2c697b528a2d98061357b42e96e5 /navit/attr.c
parent4e08fc8246ee99e9aab0842531d4363c66351108 (diff)
downloadnavit-3c2bc532366491895273f23ac3fea1cee9a127e1.tar.gz
Fix:core:Ignore unknown/invalid item types in config.|Fixes #1127.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5542 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/attr.c')
-rw-r--r--navit/attr.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/navit/attr.c b/navit/attr.c
index 3dfe8e449..dccc04c2d 100644
--- a/navit/attr.c
+++ b/navit/attr.c
@@ -105,6 +105,7 @@ attr_new_from_text(const char *name, const char *value)
struct attr *ret;
struct coord_geo *g;
struct coord c;
+ enum item_type item_type;
char *pos,*type_str,*str,*tok;
int min,max,count;
@@ -122,9 +123,14 @@ attr_new_from_text(const char *name, const char *value)
str=type_str;
while ((tok=strtok(str, ","))) {
ret->u.item_types=g_realloc(ret->u.item_types, (count+2)*sizeof(enum item_type));
- ret->u.item_types[count++]=item_from_name(tok);
- ret->u.item_types[count]=type_none;
- str=NULL;
+ item_type=item_from_name(tok);
+ if (item_type!=type_none) {
+ ret->u.item_types[count++]=item_type;
+ ret->u.item_types[count]=type_none;
+ } else {
+ dbg(0,"Unknown item type '%s' ignored.\n",tok);
+ }
+ str=NULL;
}
g_free(type_str);
break;