mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
r19397: Restrict databases which can be opened to a known set (currently only 'sam.ldb')
(This used to be commit 023c3b02b9990eed90904d3ba7e506dfe3d28345)
This commit is contained in:
parent
e2383f7ecb
commit
313e6c6adf
@ -16,6 +16,34 @@
|
||||
jsonrpc_include("resources.esp");
|
||||
|
||||
|
||||
/**
|
||||
* Local function to determine if the requested database is one which we allow
|
||||
* access to.
|
||||
*
|
||||
* @param dbRequested
|
||||
* Name of the database which is being requested to be opened
|
||||
*
|
||||
* @return
|
||||
* true if access is allowed; false otherwise.
|
||||
*/
|
||||
function accessAllowed(dbRequested)
|
||||
{
|
||||
/* Databases allowed to connect to */
|
||||
dbAllowed = new Array();
|
||||
dbAllowed[dbAllowed.length] = "sam.ldb";
|
||||
|
||||
for (var i = 0; i < dbAllowed.length; i++)
|
||||
{
|
||||
if (dbRequested == dbAllowed[i])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Connect to a database
|
||||
*
|
||||
@ -52,11 +80,10 @@ function _connect(params, error)
|
||||
return resourceId;
|
||||
}
|
||||
|
||||
/* Ensure there are no slashes in the database name */
|
||||
var components = split('/', params[0]);
|
||||
if (components.length > 1)
|
||||
/* Ensure that the database name is one that is allowed to be opened */
|
||||
if (! accessAllowed(params[0]))
|
||||
{
|
||||
error.setError(1, "Invalid database name (contains '/')");
|
||||
error.setError(-1, "Invalid or disallowed database name");
|
||||
return error;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user