From: Joas Schilling Date: Mon, 25 Aug 2014 12:29:07 +0000 (+0200) Subject: Use md5() of the original name instead of uniqid() for slugifying X-Git-Tag: v7.0.4RC1~21^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=baf8d8433fe986ab61913e1209b6e7734ac0e80d;p=nextcloud-server.git Use md5() of the original name instead of uniqid() for slugifying Previously we used uniqid() here. However this means that the behaviour is not reproducable, so when uploading files into a "empty" folder, the folders name is different. If there would be a md5() hash collition, the deduplicate check will spot this and append an index later, so this should not be a problem. Fix #6722 --- diff --git a/lib/private/files/mapper.php b/lib/private/files/mapper.php index 93f6f9bab30..94dda807c2b 100644 --- a/lib/private/files/mapper.php +++ b/lib/private/files/mapper.php @@ -216,6 +216,7 @@ class Mapper * @return string */ private function slugify($text) { + $originalText = $text; // replace non letter or digits or dots by - $text = preg_replace('~[^\\pL\d\.]+~u', '-', $text); @@ -237,7 +238,17 @@ class Mapper $text = preg_replace('~\.+$~', '', $text); if (empty($text)) { - return uniqid(); + /** + * Item slug would be empty. Previously we used uniqid() here. + * However this means that the behaviour is not reproducible, so + * when uploading files into a "empty" folder, the folders name is + * different. + * + * If there would be a md5() hash collision, the deduplicate check + * will spot this and append an index later, so this should not be + * a problem. + */ + return md5($originalText); } return $text;