|
From: <asf...@us...> - 2014-07-10 02:21:22
|
Revision: 59842
http://sourceforge.net/p/firebird/code/59842
Author: asfernandes
Date: 2014-07-10 02:21:18 +0000 (Thu, 10 Jul 2014)
Log Message:
-----------
Misc.
Modified Paths:
--------------
firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
firebird/trunk/examples/dbcrypt/DbCrypt.cpp
firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
firebird/trunk/src/common/Auth.cpp
firebird/trunk/src/common/classes/ImplementHelper.h
firebird/trunk/src/common/security.h
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/PackageNodes.epp
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/jrd/grant.epp
firebird/trunk/src/jrd/ini.epp
firebird/trunk/src/jrd/jrd.h
firebird/trunk/src/jrd/obj.h
firebird/trunk/src/jrd/scl.epp
Modified: firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/examples/dbcrypt/CryptKeyHolder.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -267,7 +267,7 @@
p->addRef();
return p;
}
- catch(const Exception& ex)
+ catch (const Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/examples/dbcrypt/DbCrypt.cpp
===================================================================
--- firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/examples/dbcrypt/DbCrypt.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -255,7 +255,7 @@
p->addRef();
return p;
}
- catch(const Exception& ex)
+ catch (const Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -560,74 +560,74 @@
Firebird::LocalStatus s2;
Firebird::IStatus* s = st;
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
- try
- {
+ try
{
- Firebird::string attr, a1, a2, a3;
+ {
+ Firebird::string attr, a1, a2, a3;
- if (!U.PLG$UID.NULL)
- a1.printf("Uid=%d\n", U.PLG$UID);
+ if (!U.PLG$UID.NULL)
+ a1.printf("Uid=%d\n", U.PLG$UID);
- if (!U.PLG$GID.NULL)
- a2.printf("Gid=%d\n", U.PLG$GID);
+ if (!U.PLG$GID.NULL)
+ a2.printf("Gid=%d\n", U.PLG$GID);
- if (!U.PLG$GROUP_NAME.NULL)
- a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
+ if (!U.PLG$GROUP_NAME.NULL)
+ a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
- attr = a1 + a2 + a3;
- user->attributes()->set(s, attr.c_str());
+ attr = a1 + a2 + a3;
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
+ }
+
+ user->userName()->set(s, U.PLG$USER_NAME);
check(s);
- user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
check(s);
- }
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->userName()->set(s, U.PLG$USER_NAME);
- check(s);
- user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
- check(s);
- user->password()->set(s, "");
- check(s);
- user->password()->setEntered(s, 0);
- check(s);
- user->firstName()->set(s, U.PLG$FIRST_NAME);
- check(s);
- user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
- check(s);
- user->middleName()->set(s, U.PLG$MIDDLE_NAME);
- check(s);
- user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- check(s);
- user->lastName()->set(s, U.PLG$LAST_NAME);
- check(s);
- user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
- check(s);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
- user->admin()->set(s, 0);
- check(s);
- user->admin()->setEntered(s, 1);
- check(s);
+ FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
+ P IN RDB$USER_PRIVILEGES
+ WITH P.RDB$USER EQ U.PLG$USER_NAME AND
+ P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
+ P.RDB$PRIVILEGE EQ 'M'
+ {
+ user->admin()->set(s, 1);
+ }
+ END_FOR
+ check(s);
- FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
- P IN RDB$USER_PRIVILEGES
- WITH P.RDB$USER EQ U.PLG$USER_NAME AND
- P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
- P.RDB$PRIVILEGE EQ 'M'
+ callback->list(s, user);
+ check(s);
+
+ found = true;
+ }
+ catch(const Firebird::Exception& ex)
{
- user->admin()->set(s, 1);
+ ex.stuffException(s);
+ s = &s2;
}
- END_FOR
- check(s);
-
- callback->list(s, user);
- check(s);
-
- found = true;
- }
- catch(const Firebird::Exception& ex)
- {
- ex.stuffException(s);
- s = &s2;
- }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
@@ -644,71 +644,70 @@
FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request) U IN PLG$VIEW_USERS
WITH U.PLG$USER_NAME EQ user->userName()->get()
- try
- {
- if (!U.PLG$UID.NULL)
- a1.printf("Uid=%d\n", U.PLG$UID);
+ try
+ {
+ if (!U.PLG$UID.NULL)
+ a1.printf("Uid=%d\n", U.PLG$UID);
- if (!U.PLG$GID.NULL)
- a2.printf("Gid=%d\n", U.PLG$GID);
+ if (!U.PLG$GID.NULL)
+ a2.printf("Gid=%d\n", U.PLG$GID);
- if (!U.PLG$GROUP_NAME.NULL)
- a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
+ if (!U.PLG$GROUP_NAME.NULL)
+ a3.printf("GroupName=%s\n", U.PLG$GROUP_NAME);
- attr = a1 + a2 + a3;
- user->attributes()->set(s, attr.c_str());
- check(s);
- user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
- check(s);
+ attr = a1 + a2 + a3;
+ user->attributes()->set(s, attr.c_str());
+ check(s);
+ user->attributes()->setEntered(s, attr.hasData() ? 1 : 0);
+ check(s);
- user->userName()->set(s, U.PLG$USER_NAME);
- check(s);
- user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
- check(s);
- user->password()->set(s, "");
- check(s);
- user->password()->setEntered(s, 0);
- check(s);
- user->firstName()->set(s, U.PLG$FIRST_NAME);
- check(s);
- user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
- check(s);
- user->middleName()->set(s, U.PLG$MIDDLE_NAME);
- check(s);
- user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
- check(s);
- user->lastName()->set(s, U.PLG$LAST_NAME);
- check(s);
- user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
- check(s);
+ user->userName()->set(s, U.PLG$USER_NAME);
+ check(s);
+ user->userName()->setEntered(s, U.PLG$USER_NAME.NULL ? 0 : 1);
+ check(s);
+ user->password()->set(s, "");
+ check(s);
+ user->password()->setEntered(s, 0);
+ check(s);
+ user->firstName()->set(s, U.PLG$FIRST_NAME);
+ check(s);
+ user->firstName()->setEntered(s, U.PLG$FIRST_NAME.NULL ? 0 : 1);
+ check(s);
+ user->middleName()->set(s, U.PLG$MIDDLE_NAME);
+ check(s);
+ user->middleName()->setEntered(s, U.PLG$MIDDLE_NAME.NULL ? 0 : 1);
+ check(s);
+ user->lastName()->set(s, U.PLG$LAST_NAME);
+ check(s);
+ user->lastName()->setEntered(s, U.PLG$LAST_NAME.NULL ? 0 : 1);
+ check(s);
- user->admin()->set(s, 0);
- check(s);
- user->admin()->setEntered(s, 1);
- check(s);
+ user->admin()->set(s, 0);
+ check(s);
+ user->admin()->setEntered(s, 1);
+ check(s);
+ FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
+ P IN RDB$USER_PRIVILEGES
+ WITH P.RDB$USER EQ U.PLG$USER_NAME AND
+ P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
+ P.RDB$PRIVILEGE EQ 'M'
+ {
+ user->admin()->set(s, 1);
+ }
+ END_FOR
+ check(s);
- FOR (TRANSACTION_HANDLE transaction REQUEST_HANDLE request2)
- P IN RDB$USER_PRIVILEGES
- WITH P.RDB$USER EQ U.PLG$USER_NAME AND
- P.RDB$RELATION_NAME EQ 'RDB$ADMIN' AND
- P.RDB$PRIVILEGE EQ 'M'
+ callback->list(s, user);
+ check(s);
+
+ found = true;
+ }
+ catch(const Firebird::Exception& ex)
{
- user->admin()->set(s, 1);
+ ex.stuffException(s);
+ s = &s2;
}
- END_FOR
- check(s);
-
- callback->list(s, user);
- check(s);
-
- found = true;
- }
- catch(const Firebird::Exception& ex)
- {
- ex.stuffException(s);
- s = &s2;
- }
END_FOR
ON_ERROR
ret = GsecMsg28; // gsec - find/display record error
Modified: firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
===================================================================
--- firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -511,8 +511,10 @@
LocalStatus s;
TimerInterfacePtr()->start(&s, instance, 10 * 1000 * 1000);
if (!s.isSuccess())
+ instance->handler();
+#else
+ instance->handler();
#endif
- instance->handler();
return rc;
}
catch (const Firebird::Exception& ex)
Modified: firebird/trunk/src/common/Auth.cpp
===================================================================
--- firebird/trunk/src/common/Auth.cpp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/Auth.cpp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -75,7 +75,7 @@
}
type = "USER";
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
@@ -105,7 +105,7 @@
if (value)
type = value;
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
@@ -122,7 +122,7 @@
current.insertPath(AuthReader::AUTH_SECURE_DB, target);
}
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(st);
}
Modified: firebird/trunk/src/common/classes/ImplementHelper.h
===================================================================
--- firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/classes/ImplementHelper.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -153,7 +153,7 @@
p->addRef();
return p;
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/common/security.h
===================================================================
--- firebird/trunk/src/common/security.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/common/security.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -74,7 +74,7 @@
{
value = newValue ? newValue : "";
}
- catch(const Firebird::Exception& ex)
+ catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
}
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -748,7 +748,8 @@
//----------------------
SecureDdlNodeExecute::SecureDdlNodeExecute(thread_db* tdbb, DdlNode* ddlNode,
- DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction): _tdbb(tdbb)
+ DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+ : _tdbb(tdbb)
{
if (ddlNode->checkPermission(tdbb, transaction))
tdbb->tdbb_flags |= TDBB_trusted_ddl;
@@ -1382,7 +1383,7 @@
bool CreateAlterFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_function(tdbb, &dscName, SCL_alter);
else
@@ -2011,7 +2012,7 @@
bool AlterExternalFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_function(tdbb, &dscName, SCL_alter);
return true;
}
@@ -2136,7 +2137,7 @@
bool DropFunctionNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_function(tdbb, &dscName, SCL_drop);
return true;
}
@@ -2329,7 +2330,7 @@
bool CreateAlterProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_procedure(tdbb, &dscName, SCL_alter);
else
@@ -2883,7 +2884,7 @@
bool DropProcedureNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_procedure(tdbb, &dscName, SCL_drop);
return true;
}
@@ -3146,7 +3147,7 @@
bool CreateAlterTriggerNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -3342,7 +3343,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -4859,6 +4860,7 @@
{
Attachment* const attachment = transaction->getAttachment();
const string& userName = attachment->att_user->usr_user_name;
+
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_CREATE_EXCEPTION, name);
@@ -6844,7 +6846,7 @@
bool AlterRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -7540,7 +7542,7 @@
bool DropRelationNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (view)
SCL_check_view(tdbb, &dscName, SCL_drop);
else
@@ -7785,7 +7787,7 @@
bool CreateAlterViewNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_view(tdbb, &dscName, SCL_alter);
else
@@ -7848,6 +7850,7 @@
REL.RDB$VIEW_BLR NOT MISSING
{
found = true;
+
MODIFY REL
attachment->storeMetaDataBlob(tdbb, transaction, &REL.RDB$VIEW_SOURCE, source);
attachment->storeBinaryBlob(tdbb, transaction, &REL.RDB$VIEW_BLR,
@@ -8918,7 +8921,7 @@
{
dsc dscName;
const MetaName &relationName = relation->dsqlName;
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9003,7 +9006,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9075,7 +9078,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -9166,7 +9169,7 @@
status_exception::raise(Arg::PrivateDyn(48));
}
- dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*)relationName.c_str());
+ dscName.makeText(relationName.length(), CS_METADATA, (UCHAR*) relationName.c_str());
SCL_check_relation(tdbb, &dscName, SCL_alter);
return true;
}
@@ -10006,15 +10009,15 @@
executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE,
DDL_TRIGGER_DROP_ROLE, name);
-
+
if (ROL.RDB$SYSTEM_FLAG != 0)
{
// msg 284: can not drop system SQL role @1
status_exception::raise(Arg::PrivateDyn(284) << name);
}
-
+
AutoCacheRequest request2(tdbb, drq_del_role_1, DYN_REQUESTS);
// The first OR clause finds all members of the role.
@@ -10373,23 +10376,24 @@
break;
}
- if (options == 1) { // with grant option
- switch (userType) {
- case obj_procedure: {
+ if (options == 1) // with grant option
+ {
+ switch (userType)
+ {
+ case obj_procedure:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("procedures"));
break;
- }
- case obj_trigger: {
+
+ case obj_trigger:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("triggers"));
break;
- }
- case obj_view: {
+
+ case obj_view:
ERRD_post(Arg::Gds(isc_dsql_cant_grant_option) << Arg::Str("views"));
break;
- }
- default: {
+
+ default:
break;
- }
}
}
@@ -10531,7 +10535,8 @@
tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName,
field, true);
}
- else if (objType >= obj_database) {
+ else if (objType >= obj_database)
+ {
checkGrantorCanGrantDdl(tdbb, transaction,
tdbb->getAttachment()->att_user->usr_user_name.c_str(), priv, objName);
}
@@ -10872,7 +10877,7 @@
// Check if the grantor has grant option on DDL privilege
void GrantRevokeNode::checkGrantorCanGrantDdl(thread_db* tdbb, jrd_tra* transaction,
- const Firebird::MetaName& grantor, const char* privilege, const Firebird::MetaName& objName)
+ const MetaName& grantor, const char* privilege, const MetaName& objName)
{
if (tdbb->getAttachment()->locksmith())
return;
@@ -10880,13 +10885,13 @@
AutoCacheRequest request(tdbb, drq_l_grant_option, DYN_REQUESTS);
bool grantable = false;
- FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
- PRV IN RDB$USER_PRIVILEGES WITH
- PRV.RDB$USER = UPPERCASE(grantor.c_str()) AND
- PRV.RDB$USER_TYPE = obj_user AND
- PRV.RDB$RELATION_NAME EQ objName.c_str() AND
- PRV.RDB$OBJECT_TYPE >= obj_database AND
- PRV.RDB$PRIVILEGE EQ privilege
+ FOR (REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ PRV IN RDB$USER_PRIVILEGES
+ WITH PRV.RDB$USER = UPPERCASE(grantor.c_str()) AND
+ PRV.RDB$USER_TYPE = obj_user AND
+ PRV.RDB$RELATION_NAME EQ objName.c_str() AND
+ PRV.RDB$OBJECT_TYPE >= obj_database AND
+ PRV.RDB$PRIVILEGE EQ privilege
{
grantable = PRV.RDB$GRANT_OPTION == 1;
}
Modified: firebird/trunk/src/dsql/DdlNodes.h
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/DdlNodes.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -2031,7 +2031,7 @@
case 'G': return "Usage";
case 'M': return "Role";
case 'R': return "Reference";
- //ddl
+ // ddl
case 'C': return "Create";
case 'L': return "Alter";
case 'O': return "DROP";
@@ -2048,7 +2048,7 @@
Firebird::Array<GranteeClause> users;
bool grantAdminOption;
NestConst<Firebird::MetaName> grantor;
- // ddl rights
+ // ddl rights
bool isDdl;
};
Modified: firebird/trunk/src/dsql/Nodes.h
===================================================================
--- firebird/trunk/src/dsql/Nodes.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/Nodes.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -158,7 +158,7 @@
{
public:
explicit SecureDdlNodeExecute(thread_db* tdbb, DdlNode* ddlNode,
- DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
+ DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
~SecureDdlNodeExecute()
{
Modified: firebird/trunk/src/dsql/PackageNodes.epp
===================================================================
--- firebird/trunk/src/dsql/PackageNodes.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/PackageNodes.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -462,7 +462,7 @@
bool CreateAlterPackageNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
if (alter)
SCL_check_package(tdbb, &dscName, SCL_alter);
else
@@ -635,7 +635,7 @@
bool DropPackageNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_package(tdbb, &dscName, SCL_drop);
return true;
}
@@ -1095,7 +1095,7 @@
bool DropPackageBodyNode::checkPermission(thread_db* tdbb, jrd_tra* transaction)
{
dsc dscName;
- dscName.makeText(name.length(), CS_METADATA, (UCHAR*)name.c_str());
+ dscName.makeText(name.length(), CS_METADATA, (UCHAR*) name.c_str());
SCL_check_package(tdbb, &dscName, SCL_drop);
return true;
}
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/dsql/parse.y 2014-07-10 02:21:18 UTC (rev 59842)
@@ -855,7 +855,8 @@
;
%type <granteeClause> object
-object : TABLE
+object
+ : TABLE
{ $$ = newNode<GranteeClause>(obj_relations, get_object_name(obj_relations)); }
| VIEW
{ $$ = newNode<GranteeClause>(obj_views, get_object_name(obj_views)); }
@@ -925,8 +926,18 @@
%type ddl_privileges(<privilegeArray>)
ddl_privileges($privilegeArray)
- : ALL { $privilegeArray->add(PrivilegeClause('C', NULL)); $privilegeArray->add(PrivilegeClause('L', NULL)); $privilegeArray->add(PrivilegeClause('O', NULL)); }
- | ALL PRIVILEGES { $privilegeArray->add(PrivilegeClause('C', NULL)); $privilegeArray->add(PrivilegeClause('L', NULL)); $privilegeArray->add(PrivilegeClause('O', NULL)); }
+ : ALL
+ {
+ $privilegeArray->add(PrivilegeClause('C', NULL));
+ $privilegeArray->add(PrivilegeClause('L', NULL));
+ $privilegeArray->add(PrivilegeClause('O', NULL));
+ }
+ | ALL PRIVILEGES
+ {
+ $privilegeArray->add(PrivilegeClause('C', NULL));
+ $privilegeArray->add(PrivilegeClause('L', NULL));
+ $privilegeArray->add(PrivilegeClause('O', NULL));
+ }
| ddl_privilege_list($privilegeArray)
;
Modified: firebird/trunk/src/jrd/grant.epp
===================================================================
--- firebird/trunk/src/jrd/grant.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/grant.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -141,11 +141,9 @@
break;
default:
- if (id >= obj_database &&
- id < obj_type_MAX)
- {
+ if (id >= obj_database && id < obj_type_MAX)
priv = OWNER_PRIVS;
- }
+ break;
}
grant_user(acl, owner, obj_user, priv);
Modified: firebird/trunk/src/jrd/ini.epp
===================================================================
--- firebird/trunk/src/jrd/ini.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/ini.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -478,7 +478,7 @@
add_security_to_sys_obj(tdbb, ownerName, obj_collation, collation->name, length, buffer);
}
- for (int ddl_obj = obj_database + 1; ddl_obj < obj_type_MAX; ddl_obj++)
+ for (int ddl_obj = obj_database + 1; ddl_obj < obj_type_MAX; ++ddl_obj)
{
add_security_class(tdbb, get_object_name(ddl_obj), length, buffer);
}
@@ -1182,7 +1182,7 @@
bid blob_id;
attachment->storeBinaryBlob(tdbb, attachment->getSysTransaction(), &blob_id,
- ByteChunk(acl, acl_length));
+ ByteChunk(acl, acl_length));
AutoRequest handle;
@@ -1193,8 +1193,6 @@
CLS.RDB$ACL = blob_id;
}
END_STORE
-
- handle.reset();
}
Modified: firebird/trunk/src/jrd/jrd.h
===================================================================
--- firebird/trunk/src/jrd/jrd.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/jrd.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -369,7 +369,7 @@
const USHORT TDBB_detaching = 512; // detach is in progress
const USHORT TDBB_wait_cancel_disable = 1024; // don't cancel current waiting operation
const USHORT TDBB_cache_unwound = 2048; // page cache was unwound
-const USHORT TDBB_trusted_ddl = 4096; // skip DDL permission checks. set after DDL permission check and clear after DDL execution
+const USHORT TDBB_trusted_ddl = 4096; // skip DDL permission checks. Set after DDL permission check and clear after DDL execution
class thread_db : public Firebird::ThreadData
{
Modified: firebird/trunk/src/jrd/obj.h
===================================================================
--- firebird/trunk/src/jrd/obj.h 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/obj.h 2014-07-10 02:21:18 UTC (rev 59842)
@@ -48,17 +48,17 @@
const int obj_package_header = 18;
const int obj_package_body = 19;
-//objects types for ddl operations
+// objects types for ddl operations
const int obj_database = 20;
const int obj_relations = 21;
-const int obj_views = 22;
+const int obj_views = 22;
const int obj_procedures = 23;
const int obj_functions = 24;
const int obj_packages = 25;
const int obj_generators = 26;
const int obj_domains = 27;
const int obj_exceptions = 28;
-const int obj_roles = 29;
+const int obj_roles = 29;
const int obj_shadows = 30;
const int obj_charsets = 31;
const int obj_collations = 32;
Modified: firebird/trunk/src/jrd/scl.epp
===================================================================
--- firebird/trunk/src/jrd/scl.epp 2014-07-09 00:37:11 UTC (rev 59841)
+++ firebird/trunk/src/jrd/scl.epp 2014-07-10 02:21:18 UTC (rev 59842)
@@ -1249,28 +1249,28 @@
* S C L _ g e t _ o b j e c t _ m a s k
*
**************************************
- *
+ *
* Functional description
* Get a protection mask for database object.
*
**************************************/
thread_db* tdbb = JRD_get_thread_data();
Database* dbb = tdbb->getDatabase();
-
+
UserId* user = tdbb->getAttachment()->att_user;
/*if (object_type == obj_roles)
{
if (user->isSecAdmin())
- return -1 & ~SCL_corrupt;
+ return -1 & ~SCL_corrupt;
}*/
-
+
const TEXT* object_name = get_object_name(object_type);
const Jrd::SecurityClass* s_class = SCL_recompute_class(tdbb, object_name);
-
+
if (s_class)
return s_class->scl_flags;
-
+
return -1 & ~SCL_corrupt;
}
@@ -1283,7 +1283,7 @@
**************************************
*
* Functional description
- * Set user attributes.
+ * Set user attributes.
*
**************************************/
thread_db* tdbb = JRD_get_thread_data();
@@ -1293,7 +1293,7 @@
if (!user.usr_user_name.compare(dbb->dbb_owner.c_str())) {
user.usr_flags |= USR_owner;
- }
+ }
}
static bool check_number(const UCHAR* acl, USHORT number)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|