Skip to content

Commit

Permalink
Merge pull request #47695 from nextcloud/backport/47627/stable30
Browse files Browse the repository at this point in the history
[stable30] [LinkReferenceProvider] Better size check
  • Loading branch information
AndyScherzinger authored Sep 3, 2024
2 parents 8b7329b + 6b5675f commit 5ce265f
Showing 1 changed file with 15 additions and 5 deletions.
20 changes: 15 additions & 5 deletions lib/public/Collaboration/Reference/LinkReferenceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,8 @@ private function fetchReference(Reference $reference): void {
}

$linkContentLength = $headResponse->getHeader('Content-Length');
if (is_numeric($linkContentLength) && (int) $linkContentLength > self::MAX_CONTENT_LENGTH) {
$this->logger->debug('Skip resolving links pointing to content length > 5 MiB');
if (is_numeric($linkContentLength) && (int)$linkContentLength > self::MAX_CONTENT_LENGTH) {
$this->logger->debug('[Head] Skip resolving links pointing to content length > 5 MiB');
return;
}

Expand All @@ -136,18 +136,28 @@ private function fetchReference(Reference $reference): void {
}

try {
$response = $client->get($reference->getId(), [ 'timeout' => 10 ]);
$response = $client->get($reference->getId(), [ 'timeout' => 10, 'stream' => true ]);
} catch (\Exception $e) {
$this->logger->debug('Failed to fetch link for obtaining open graph data', ['exception' => $e]);
return;
}

$responseBody = (string)$response->getBody();
$body = $response->getBody();
if (is_resource($body)) {
$responseContent = fread($body, self::MAX_CONTENT_LENGTH);
if (!feof($body)) {
$this->logger->debug('[Get] Skip resolving links pointing to content length > 5 MiB');
return;
}
} else {
$this->logger->error('[Get] Impossible to check content length');
return;
}

// OpenGraph handling
$consumer = new Consumer();
$consumer->useFallbackMode = true;
$object = $consumer->loadHtml($responseBody);
$object = $consumer->loadHtml($responseContent);

$reference->setUrl($reference->getId());

Expand Down

0 comments on commit 5ce265f

Please sign in to comment.