1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-11-18 10:21:03 +03:00

Ensure ALTER TABLE respects the system table convention - "sqlite_*". (CVS 2115)

FossilOrigin-Name: f635b6aae661ac85eec49b197f3bb4b85172a457
This commit is contained in:
danielk1977
2004-11-19 08:41:34 +00:00
parent aacd732b11
commit 023f41762c
4 changed files with 33 additions and 10 deletions

View File

@@ -22,7 +22,7 @@
** COMMIT
** ROLLBACK
**
** $Id: build.c,v 1.283 2004/11/19 08:02:14 danielk1977 Exp $
** $Id: build.c,v 1.284 2004/11/19 08:41:34 danielk1977 Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -2959,6 +2959,19 @@ void sqlite3AlterRenameTable(
return;
}
/* Make sure it is not a system table being altered, or a reserved name
** that the table is being renamed to.
*/
if( strlen(pTab->zName)>6 && 0==sqlite3StrNICmp(pTab->zName, "sqlite_", 7) ){
sqlite3ErrorMsg(pParse, "table %s may not be altered", pTab->zName);
sqliteFree(zName);
return;
}
if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
sqliteFree(zName);
return;
}
#ifndef SQLITE_OMIT_AUTHORIZATION
/* Invoke the authorization callback. */
if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){