You are here

private function PharMetaDataInterceptor::baseFileDoesNotHaveMetaDataIssues in Drupal 7

Parameters

string $path:

Return value

bool

1 call to PharMetaDataInterceptor::baseFileDoesNotHaveMetaDataIssues()
PharMetaDataInterceptor::assert in misc/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php
Determines whether the according Phar archive contains (potential insecure) serialized objects.

File

misc/typo3/phar-stream-wrapper/src/Interceptor/PharMetaDataInterceptor.php, line 53

Class

PharMetaDataInterceptor
@internal Experimental implementation of checking against serialized objects in Phar meta-data @internal This functionality has not been 100% pentested...

Namespace

TYPO3\PharStreamWrapper\Interceptor

Code

private function baseFileDoesNotHaveMetaDataIssues($path) {
  $invocation = Manager::instance()
    ->resolve($path);
  if ($invocation === null) {
    return false;
  }

  // directly return in case invocation was checked before
  if ($invocation
    ->getVariable(__CLASS__) === true) {
    return true;
  }

  // otherwise analyze meta-data
  try {
    $reader = new Reader($invocation
      ->getBaseName());
    $reader
      ->resolveContainer()
      ->getManifest()
      ->deserializeMetaData();
    $invocation
      ->setVariable(__CLASS__, true);
  } catch (DeserializationException $exception) {
    return false;
  }
  return true;
}