summaryrefslogtreecommitdiffabout
authorNaohiro Ooiwa <nooiwa@miraclelinux.com>2009-06-28 11:30:38 (GMT)
committer Sergey Poznyakoff <gray@gnu.org.ua>2009-06-28 11:30:38 (GMT)
commitd80d146b2c78a9ea114748129cde0fae017bbfbc (patch) (side-by-side diff)
tree5dda449aa7ad1542f8025f46b8f12d1e8743c1a9
parentcf07f316b773f552dbebeeac4a1220e8e7c968d0 (diff)
downloadcflow-d80d146b2c78a9ea114748129cde0fae017bbfbc.tar.gz
cflow-d80d146b2c78a9ea114748129cde0fae017bbfbc.tar.bz2
Fix coredump (tiny change)
* src/main.c (symbol_override): Fix conditional logic to prevent coredump on invalid usage. Require that the argument always have ':' in it.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--src/main.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/main.c b/src/main.c
index 23c2aaa..5ad565a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,5 +1,5 @@
/* This file is part of GNU cflow
- Copyright (C) 1997,2005,2007 Sergey Poznyakoff
+ Copyright (C) 1997,2005,2007,2009 Sergey Poznyakoff
GNU cflow is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -257,14 +257,16 @@ symbol_override(const char *str)
Symbol *sp;
ptr = strchr(str, ':');
- if (*ptr == ':') {
+ if (!ptr) {
+ error(0, 0, _("%s: no symbol type supplied"), str);
+ return;
+ } else {
type = find_option_type(symbol_optype, ptr+1, 0);
if (type == 0) {
error(0, 0, _("unknown symbol type: %s"), ptr+1);
return;
}
- } else
- type = IDENTIFIER;
+ }
name = strndup(str, ptr - str);
sp = install(name);
sp->type = SymToken;

Return to:

Send suggestions and report system problems to the System administrator.