]> source.dussan.org Git - nextcloud-server.git/commitdiff
Use md5() of the original name instead of uniqid() for slugifying
authorJoas Schilling <nickvergessen@gmx.de>
Mon, 25 Aug 2014 12:29:07 +0000 (14:29 +0200)
committerJoas Schilling <nickvergessen@gmx.de>
Mon, 25 Aug 2014 13:06:12 +0000 (15:06 +0200)
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

lib/private/files/mapper.php

index 93f6f9bab309201b93787f009012587eaf1d950d..94dda807c2b42d9aae0eaf25dc01e3bf2b795d13 100644 (file)
@@ -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;