mirror of
https://github.com/nextcloud/server.git
synced 2026-05-12 16:39:39 -04:00
fix: Extend SVG reference check
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
a812fac26b
commit
350300e584
2 changed files with 30 additions and 1 deletions
|
|
@ -53,7 +53,7 @@ class SVG extends ProviderV2 {
|
|||
}
|
||||
|
||||
// Do not parse SVG files with references
|
||||
if (stripos($content, 'xlink:href') !== false) {
|
||||
if (preg_match('/["\s](xlink:)?href\s*=/i', $content)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -43,4 +43,33 @@ class SVGTest extends Provider {
|
|||
$this->markTestSkipped('No SVG provider present');
|
||||
}
|
||||
}
|
||||
|
||||
public function dataGetThumbnailSVGHref(): array {
|
||||
return [
|
||||
['href'],
|
||||
[' href'],
|
||||
["\nhref"],
|
||||
['xlink:href'],
|
||||
[' xlink:href'],
|
||||
["\nxlink:href"],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider dataGetThumbnailSVGHref
|
||||
* @requires extension imagick
|
||||
*/
|
||||
public function testGetThumbnailSVGHref(string $content): void {
|
||||
$handle = fopen('php://temp', 'w+');
|
||||
fwrite($handle, '<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
||||
<image x="0" y="0"' . $content . '="fxlogo.png" height="100" width="100" />
|
||||
</svg>');
|
||||
rewind($handle);
|
||||
|
||||
$file = $this->createMock(\OCP\Files\File::class);
|
||||
$file->method('fopen')
|
||||
->willReturn($handle);
|
||||
|
||||
self::assertNull($this->provider->getThumbnail($file, 512, 512));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue