diff options
author | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-12-05 19:43:22 +0000 |
---|---|---|
committer | mdankov <mdankov@ffa7fe5e-494d-0410-b361-a75ebd5db220> | 2012-12-05 19:43:22 +0000 |
commit | 4ecb2531bdb619532d1623b66f12d5c72014d933 (patch) | |
tree | a22fd45532bfc991bae8e2a1d777049bab752f34 /navit/command.c | |
parent | 944ac5c9680c9490613360e3d95bb71b7194f743 (diff) | |
download | navit-4ecb2531bdb619532d1623b66f12d5c72014d933.tar.gz |
Fix:core:Don't jump over the end of command when closing double quote is missing.
git-svn-id: http://svn.code.sf.net/p/navit/code/trunk/navit@5284 ffa7fe5e-494d-0410-b361-a75ebd5db220
Diffstat (limited to 'navit/command.c')
-rw-r--r-- | navit/command.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/navit/command.c b/navit/command.c index 934422da4..72694b5f0 100644 --- a/navit/command.c +++ b/navit/command.c @@ -95,7 +95,7 @@ get_op(struct context *ctx, int test, ...) const char *ret=NULL; va_list ap; - while (g_ascii_isspace(*ctx->expr)) { + while (*ctx->expr && g_ascii_isspace(*ctx->expr)) { ctx->expr++; } @@ -364,14 +364,15 @@ eval_value(struct context *ctx, struct result *res) { if (op[0] == '"') { do { op++; - } while (op[0] != '"'); + } while (op[0] && op[0] != '"'); res->attr.type=attr_type_string_begin; len=op-ctx->expr-1; res->attr.u.str=g_malloc(len+1); strncpy(res->attr.u.str, ctx->expr+1, len); res->attr.u.str[len]='\0'; res->allocated=1; - op++; + if(*op) + op++; ctx->expr=op; return; } |