From e47cd5ebf1658ef65361f3a3986925899ef8baf6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thomas=20M=C3=BCller?= <thomas.mueller@tmit.eu>
Date: Fri, 11 Jul 2014 16:51:59 +0200
Subject: [PATCH] append file extension to the temporary file which contains
 the downloaded archive - in case of zip files fileinfo doesn't seem to return
 anything reliable

---
 lib/private/installer.php | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/lib/private/installer.php b/lib/private/installer.php
index 29470dbe3a..f1c99f1e2b 100644
--- a/lib/private/installer.php
+++ b/lib/private/installer.php
@@ -235,9 +235,10 @@ class OC_Installer{
 			throw new \Exception($l->t("No source specified when installing app"));
 		}
 
-		//download the file if necesary
+		//download the file if necessary
 		if($data['source']=='http') {
-			$path=OC_Helper::tmpFile();
+			$pathInfo = pathinfo($data['href']);
+			$path=OC_Helper::tmpFile('.' . $pathInfo['extension']);
 			if(!isset($data['href'])) {
 				throw new \Exception($l->t("No href specified when installing app from http"));
 			}
@@ -251,13 +252,7 @@ class OC_Installer{
 
 		//detect the archive type
 		$mime=OC_Helper::getMimeType($path);
-		if($mime=='application/zip') {
-			rename($path, $path.'.zip');
-			$path.='.zip';
-		}elseif($mime=='application/x-gzip') {
-			rename($path, $path.'.tgz');
-			$path.='.tgz';
-		}else{
+		if ($mime !=='application/zip' && $mime !== 'application/x-gzip') {
 			throw new \Exception($l->t("Archives of type %s are not supported", array($mime)));
 		}
 
-- 
GitLab