]> git.donarmstrong.com Git - debbugs.git/commitdiff
[project @ 2005-10-09 14:03:32 by ajt]
authorajt <>
Sun, 9 Oct 2005 21:03:32 +0000 (13:03 -0800)
committerajt <>
Sun, 9 Oct 2005 21:03:32 +0000 (13:03 -0800)
limit usertags to alphanumerics, dot, at, plus, dash

scripts/service.in

index 9bba5cdd4e057d4f840d6f0fea35bb114cd217fd..382b0cd3a236873c5c6016f6a39628d661344291 100755 (executable)
@@ -1,5 +1,5 @@
 #!/usr/bin/perl
-# $Id: service.in,v 1.115 2005/10/06 03:46:13 ajt Exp $
+# $Id: service.in,v 1.116 2005/10/09 14:03:32 ajt Exp $
 #
 # Usage: service <code>.nn
 # Temps:  incoming/P<code>.nn
@@ -262,8 +262,18 @@ END
        } else {
            my %ut;
            Debbugs::User::read_usertags(\%ut, $user);
-            my @oldtags = (); my @newtags = ();
-           my %chtags = map { ($_, 1) } split /[,\s]+/, $tags;
+            my @oldtags = (); my @newtags = (); my @badtags = ();
+           my %chtags;
+           for my $t (split /[,\s]+/, $tags) {
+               if ($t =~ m/^[a-zA-Z0-9.+\@-]+$/) {
+                   $chtags{$t} = 1;
+               } else {
+                   push @badtags, $t;
+               }
+           }
+           if (@badtags) {
+                &transcript("Ignoring illegal tag/s: ".join(', ', @badtags).".\nPlease use only alphanumerics, at, dot, plus and dash.\n");
+           }
             for my $t (keys %chtags) {
                $ut{$t} = [] unless defined $ut{$t};
            }