summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorRobin McCorkell <rmccorkell@karoshi.org.uk>2015-07-30 11:29:06 +0100
committerRobin McCorkell <rmccorkell@karoshi.org.uk>2015-07-30 21:02:16 +0100
commit182bc17aebe19f49c30f50aacabdb1c9824c6f68 (patch)
tree009dfd226788a7765acfe2baf77cfa4935f957db /lib
parenta07254856ce532bfe5c49c1b53247daf88dbdd4a (diff)
downloadnextcloud-server-182bc17aebe19f49c30f50aacabdb1c9824c6f68.tar.gz
nextcloud-server-182bc17aebe19f49c30f50aacabdb1c9824c6f68.zip
Sanitize class names before registerService/query
Leading backslashes are removed, so a `registerService('\\OC\\Foo')` can still be resolved with `query('OC\\Foo')`.
Diffstat (limited to 'lib')
-rw-r--r--lib/private/appframework/utility/simplecontainer.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/private/appframework/utility/simplecontainer.php b/lib/private/appframework/utility/simplecontainer.php
index c1fc96d1975..9458d59014a 100644
--- a/lib/private/appframework/utility/simplecontainer.php
+++ b/lib/private/appframework/utility/simplecontainer.php
@@ -99,6 +99,7 @@ class SimpleContainer extends Container implements IContainer {
* @throws QueryException if the query could not be resolved
*/
public function query($name) {
+ $name = $this->sanitizeName($name);
if ($this->offsetExists($name)) {
return $this->offsetGet($name);
} else {
@@ -128,6 +129,7 @@ class SimpleContainer extends Container implements IContainer {
* @param bool $shared
*/
public function registerService($name, Closure $closure, $shared = true) {
+ $name = $this->sanitizeName($name);
if (isset($this[$name])) {
unset($this[$name]);
}
@@ -151,4 +153,12 @@ class SimpleContainer extends Container implements IContainer {
});
}
+ /*
+ * @param string $name
+ * @return string
+ */
+ protected function sanitizeName($name) {
+ return ltrim($name, '\\');
+ }
+
}