Alex Schroeder
46cb69a6c3
Use helper functions for accessing the file system
...
As we derive a lot of filenames from strings in UTF-8 encoded files, we
need to make sure that any filename that might might be set by a user –
including all the filenames containing a directory deriving from
$DataDir – are passed through utf8::encode. That is, every character
gets replaced with a sequence of one or more characters that represent
the individual bytes of the character and the UTF8 flag is turned off.
In other words, -d $DataDir might not work if $DataDir contains a UTF-8
encoded string. The solution is to use the following replacements:
-f $name IsFile($name)
-e $name IsFile($name)
-d $name IsDir($name)
(stat($name))[9] Modified($name)
-M $name $Now - Modified($name)
-z $name ZeroSize($name)
unlink $name Unlink($name)
mkdir $name CreateDir($name)
rmdir $name RemoveDir($name)
(Using IsFile for -e is probably not ideal?)
If you don’t, and Oddmuse gets used with Mojolicious, and you use the
Namespaces Extension, and a namespace contains non-ASCII characters such
as ä, ö, or ü, these characters will end up as part of $DataDir and
trigger the problem.
I also wonder whether we should be using some other Perl library.
2016-06-17 14:49:34 +02:00
..
2016-05-28 13:58:57 +02:00
2015-07-28 10:55:13 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-09-04 04:55:48 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-09-07 03:47:23 +03:00
2015-09-12 19:06:59 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-10-15 19:18:55 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-09-21 17:56:02 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-10-15 19:29:35 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-09-04 04:55:48 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-10-21 12:15:25 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-09-04 04:55:48 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-09-04 14:00:44 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-10-15 14:41:55 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-10-18 02:48:06 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-07-28 10:47:21 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-09-04 04:55:48 +03:00
2016-05-28 09:30:59 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2015-10-14 12:39:55 +02:00
2015-08-18 10:48:03 +02:00
2015-10-15 14:41:55 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-10-19 23:17:39 +03:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-10-31 02:58:00 +02:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2015-10-26 01:03:42 +02:00
2015-09-04 04:55:48 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-10-15 14:36:51 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-09-21 09:41:00 +02:00
2015-09-04 04:55:48 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-07-16 22:14:32 +02:00
2015-08-18 11:11:13 +02:00
2015-08-18 11:11:13 +02:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-09-11 02:55:18 +03:00
2015-08-18 10:48:03 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2015-10-15 19:13:13 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-09-16 04:13:02 +03:00
2015-08-18 10:48:03 +02:00
2015-10-15 14:34:28 +02:00
2015-10-15 14:27:17 +02:00
2016-06-17 14:49:34 +02:00
2016-06-17 14:49:34 +02:00
2015-08-23 21:22:12 +03:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-10-26 01:03:42 +02:00
2016-06-17 14:49:34 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-08-18 10:48:03 +02:00
2015-10-15 14:24:08 +02:00
2015-08-18 10:48:03 +02:00
2015-08-23 21:22:12 +03:00
2015-08-23 21:22:12 +03:00