Changeset: f3d5c15e5bbe for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f3d5c15e5bbe Branch: default Log Message:
Merge upstream diffs (26 lines): diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c --- a/sql/server/rel_schema.c +++ b/sql/server/rel_schema.c @@ -2102,8 +2102,7 @@ rel_create_index(mvc *sql, char *iname, sql_exp **updates, *e; sql_idx *i; dnode *n; - char *sname = qname_schema(qname); - char *tname = qname_schema_object(qname); + char *sname = qname_schema(qname), *tname = qname_schema_object(qname), *s = iname; if (!(t = find_table_or_view_on_scope(sql, NULL, sname, tname, "CREATE INDEX", false))) return NULL; @@ -2111,6 +2110,12 @@ rel_create_index(mvc *sql, char *iname, return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: cannot create index on a declared table"); if (!mvc_schema_privs(sql, t->s)) return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: access denied for %s to schema '%s'", get_string_global_var(sql, "current_user"), t->s->base.name); + if (!s || !*s) /* add this to be safe */ + return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: index name cannot be empty"); + while (isdigit((unsigned char) *s)) + s++; + if (!*s) /* if an index just contains digit characters, it can be mistaken with a label */ + return sql_error(sql, 02, SQLSTATE(42000) "CREATE INDEX: indexes cannot contain just digit characters (0 through 9)"); if ((i = mvc_bind_idx(sql, t->s, iname))) return sql_error(sql, 02, SQLSTATE(42S11) "CREATE INDEX: name '%s' already in use", iname); if (!isTable(t)) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list