From a014662c52f5295a7e86cd43b7dd62b89e3f1085 Mon Sep 17 00:00:00 2001
From: Georg Ehrke <georg@ownCloud.com>
Date: Thu, 30 May 2013 11:06:52 +0200
Subject: [PATCH] improve imagick error handling

---
 lib/preview/pdf.php |  9 +++++++--
 lib/preview/svg.php | 23 ++++++++++++++---------
 2 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/lib/preview/pdf.php b/lib/preview/pdf.php
index 85878a122a..f1d0a33dc6 100644
--- a/lib/preview/pdf.php
+++ b/lib/preview/pdf.php
@@ -19,8 +19,13 @@ if (extension_loaded('imagick')) {
 			$tmppath = $fileview->toTmpFile($path);
 
 			//create imagick object from pdf
-			$pdf = new \imagick($tmppath . '[0]');
-			$pdf->setImageFormat('jpg');
+			try{
+				$pdf = new \imagick($tmppath . '[0]');
+				$pdf->setImageFormat('jpg');
+			}catch(\Exception $e){
+				\OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+				return false;
+			}
 
 			unlink($tmppath);
 
diff --git a/lib/preview/svg.php b/lib/preview/svg.php
index 8bceeaf60d..76d81589ba 100644
--- a/lib/preview/svg.php
+++ b/lib/preview/svg.php
@@ -16,17 +16,22 @@ if (extension_loaded('imagick')) {
 		}
 
 		public function getThumbnail($path,$maxX,$maxY,$scalingup,$fileview) {
-			$svg = new \Imagick();
-			$svg->setResolution($maxX, $maxY);
-
-			$content = stream_get_contents($fileview->fopen($path, 'r'));
-			if(substr($content, 0, 5) !== '<?xml') {
-				$content = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $content;
+			try{
+				$svg = new \Imagick();
+				$svg->setResolution($maxX, $maxY);
+
+				$content = stream_get_contents($fileview->fopen($path, 'r'));
+				if(substr($content, 0, 5) !== '<?xml') {
+					$content = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>' . $content;
+				}
+
+				$svg->readImageBlob($content);
+				$svg->setImageFormat('jpg');
+			}catch(\Exception $e){
+				\OC_Log::write('core', $e->getmessage(), \OC_Log::ERROR);
+				return false;
 			}
 
-			$svg->readImageBlob($content);
-			$svg->setImageFormat('jpg');
-
 			//new image object
 			$image = new \OC_Image($svg);
 			//check if image object is valid
-- 
GitLab