Skip to content

Commit

Permalink
Encapsulate require_once to avoid name space bleedind
Browse files Browse the repository at this point in the history
The script required by require_once might use variable names like $app
which will conflict with the code that follows.

This fix encapsulates require_once into its own function to avoid such
issues.
  • Loading branch information
Vincent Petry authored and MorrisJobke committed Oct 17, 2014
1 parent 5b6ba39 commit 9998861
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion lib/private/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public static function loadApp($app, $checkUpgrade = true) {
if ($checkUpgrade and self::shouldUpgrade($app)) {
throw new \OC\NeedsUpdateException();
}
require_once $app . '/appinfo/app.php';
self::requireAppFile($app);
if (self::isType($app, array('authentication'))) {
// since authentication apps affect the "is app enabled for group" check,
// the enabled apps cache needs to be cleared to make sure that the
Expand All @@ -103,6 +103,16 @@ public static function loadApp($app, $checkUpgrade = true) {
}
}

/**
* Load app.php from the given app
*
* @param string $app app name
*/
private static function requireAppFile($app) {
// encapsulated here to avoid variable scope conflicts
require_once $app . '/appinfo/app.php';
}

/**
* check if an app is of a specific type
*
Expand Down

0 comments on commit 9998861

Please sign in to comment.