diff -r 189e63c5b36f -r 79baa14a3b9c upload.pl --- a/upload.pl Wed May 11 10:37:40 2011 +0200 +++ b/upload.pl Wed May 11 12:22:00 2011 +0200 @@ -28,8 +28,8 @@ use CGI::Pretty; use IO::File; use File::Basename; -use Digest::SHA1 qw(sha1_hex); use Digest::MD5 qw(md5_hex); +use OSSP::uuid; my $DIR = "d/{view}"; my $DIR_URI = "/$DIR"; @@ -56,7 +56,7 @@ or die "Can't mkdir $DIR: $!\n"; - if (param("delete") =~ /([a-z\d]+-\d+)/i) { + if (param("delete") =~ /([-a-z\d]+-\d+)/i) { my $dir = $1; if (-d "$DIR/$dir") { unlink map { /(.*)/ && $1 } glob("$DIR/$dir/*") @@ -78,6 +78,7 @@ if (length(my $file = param("upload"))) { my $days = param("expires"); my $expires; + tie my $uuid => "OSSP::uuid::tie", "v4"; # sanitize expires $days =~ /.*?(\d+).*/; @@ -90,7 +91,7 @@ $filename =~ /(.*)/; $filename = $1; - my $dir = "$DIR/" . sha1_hex(time + rand(10_000)) . "-$expires"; + my $dir = "$DIR/$uuid-$expires"; mkdir $dir, 0750 or die "Can't mkdir $dir: $!\n"; my $outfh = new IO::File ">$dir/$filename" or die "Can't create $dir/$filename: $!\n";