Can't find string terminator "!" anywhere before EOF at queue.cgi line 42
[freeside.git] / FS / FS / svc_acct.pm
index 3530001..8e29cb7 100644 (file)
@@ -677,12 +677,13 @@ sub check {
   my $ulen = $usernamemax || $self->dbdef_table->column('username')->length;
   if ( $username_uppercase ) {
     $recref->{username} =~ /^([a-z0-9_\-\.]{$usernamemin,$ulen})$/i
-      or return "Illegal username";
+      or return "Illegal username: ". $recref->{username};
+    $recref->{username} = $1;
   } else {
     $recref->{username} =~ /^([a-z0-9_\-\.]{$usernamemin,$ulen})$/
-      or return "Illegal username";
+      or return "Illegal username: ". $recref->{username};
+    $recref->{username} = $1;
   }
-  $recref->{username} = $1;
 
   if ( $username_letterfirst ) {
     $recref->{username} =~ /^[a-z]/ or return "Illegal username";
@@ -715,13 +716,14 @@ sub check {
 #    $error = $self->ut_textn('finger');
 #    return $error if $error;
     $self->getfield('finger') =~
-      /^([\w \t\!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\*]*)$/
+      /^([\w \t\!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\*\<\>]*)$/
         or return "Illegal finger: ". $self->getfield('finger');
     $self->setfield('finger', $1);
 
-    $recref->{dir} =~ /^([\/\w\-]*)$/
+    $recref->{dir} =~ /^([\/\w\-\.]*)$/
       or return "Illegal directory";
     $recref->{dir} = $1;
+    return "Illegal directory" if $recref->{dir} =~ /\.\./; #no ..
     unless ( $recref->{dir} ) {
       $recref->{dir} = $dir_prefix . '/';
       if ( $dirhash > 0 ) {
@@ -919,7 +921,7 @@ sub ssh {
 
 =head1 VERSION
 
-$Id: svc_acct.pm,v 1.47 2001-09-30 20:30:09 ivan Exp $
+$Id: svc_acct.pm,v 1.51 2001-10-22 14:48:28 ivan Exp $
 
 =head1 BUGS