summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-08-25 14:29:07 +0200
committerJoas Schilling <nickvergessen@gmx.de>2014-11-19 10:17:36 +0100
commitbaf8d8433fe986ab61913e1209b6e7734ac0e80d (patch)
treef295e17aa9c99d6f8e95896949a0f1cf247c4a06
parentf5bd8e494761ee657ea1f6cc1dc78e0af5b25ef2 (diff)
downloadnextcloud-server-baf8d8433fe986ab61913e1209b6e7734ac0e80d.tar.gz
nextcloud-server-baf8d8433fe986ab61913e1209b6e7734ac0e80d.zip
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
-rw-r--r--lib/private/files/mapper.php13
1 files changed, 12 insertions, 1 deletions
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;