summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2006-08-12 01:43:40 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2006-08-12 01:43:40 (GMT)
commit6f5ff3f3eb7abc2f4750c1319b560f67faf546ac (patch)
tree1b84bed27afcf3a62f50a2a2a6dabe162327866a /Python
parent2a899c8b767144e809418fd04f83e4e5789084cd (diff)
downloadcpython-6f5ff3f3eb7abc2f4750c1319b560f67faf546ac.zip
cpython-6f5ff3f3eb7abc2f4750c1319b560f67faf546ac.tar.gz
cpython-6f5ff3f3eb7abc2f4750c1319b560f67faf546ac.tar.bz2
Klocwork made another run and found a bunch more problems.
This is the first batch of fixes that should be easy to verify based on context. This fixes problem numbers: 220 (ast), 323-324 (symtable), 321-322 (structseq), 215 (array), 210 (hotshot), 182 (codecs), 209 (etree).
Diffstat (limited to 'Python')
-rw-r--r--Python/ast.c2
-rw-r--r--Python/symtable.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/Python/ast.c b/Python/ast.c
index ca832aa..b356192 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -2197,6 +2197,8 @@ alias_for_import_name(struct compiling *c, const node *n)
}
else {
alias_ty a = alias_for_import_name(c, CHILD(n, 0));
+ if (!a)
+ return NULL;
if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
ast_error(n, "must use 'as' in import");
return NULL;
diff --git a/Python/symtable.c b/Python/symtable.c
index 439a243..3e58b50 100644
--- a/Python/symtable.c
+++ b/Python/symtable.c
@@ -915,6 +915,8 @@ symtable_new_tmpname(struct symtable *st)
PyOS_snprintf(tmpname, sizeof(tmpname), "_[%d]",
++st->st_cur->ste_tmpname);
tmp = PyString_InternFromString(tmpname);
+ if (!tmp)
+ return 0;
if (!symtable_add_def(st, tmp, DEF_LOCAL))
return 0;
Py_DECREF(tmp);
@@ -1323,8 +1325,11 @@ symtable_visit_alias(struct symtable *st, alias_ty a)
PyObject *name = (a->asname == NULL) ? a->name : a->asname;
const char *base = PyString_AS_STRING(name);
char *dot = strchr(base, '.');
- if (dot)
+ if (dot) {
store_name = PyString_FromStringAndSize(base, dot - base);
+ if (!store_name)
+ return 0;
+ }
else {
store_name = name;
Py_INCREF(store_name);