Removed some commands from anonymous users.

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@802 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Johan Danielsson
1996-09-29 05:32:53 +00:00
parent fc8b39f904
commit 1a66c665f0

View File

@@ -138,14 +138,14 @@ static int yylex (void);
AUTH ADAT PROT PBSZ CCC MIC AUTH ADAT PROT PBSZ CCC MIC
CONF ENC CONF ENC
KAUTH KLIST FIND KAUTH KLIST FIND URL
LEXERR LEXERR
%token <s> STRING %token <s> STRING
%token <i> NUMBER %token <i> NUMBER
%type <i> check_login octal_number byte_size %type <i> check_login check_login_no_guest octal_number byte_size
%type <i> struct_code mode_code type_code form_code %type <i> struct_code mode_code type_code form_code
%type <s> pathstring pathname password username %type <s> pathstring pathname password username
@@ -366,23 +366,25 @@ cmd
}else }else
statcmd(); statcmd();
} }
| DELE check_login SP pathname CRLF | DELE check_login_no_guest SP pathname CRLF
{ {
if ($2 && $4 != NULL) if ($2 && $4 != NULL)
delete($4); delete($4);
if ($4 != NULL) if ($4 != NULL)
free($4); free($4);
} }
| RNTO SP pathname CRLF | RNTO check_login_no_guest SP pathname CRLF
{ {
if($2){
if (fromname) { if (fromname) {
renamecmd(fromname, $3); renamecmd(fromname, $4);
free(fromname); free(fromname);
fromname = (char *) 0; fromname = (char *) 0;
} else { } else {
reply(503, "Bad sequence of commands."); reply(503, "Bad sequence of commands.");
} }
free($3); }
free($4);
} }
| ABOR CRLF | ABOR CRLF
{ {
@@ -436,7 +438,7 @@ cmd
if ($4 != NULL) if ($4 != NULL)
free($4); free($4);
} }
| RMD check_login SP pathname CRLF | RMD check_login_no_guest SP pathname CRLF
{ {
if ($2 && $4 != NULL) if ($2 && $4 != NULL)
removedir($4); removedir($4);
@@ -471,7 +473,7 @@ cmd
reply(200, "Current UMASK is %03o", oldmask); reply(200, "Current UMASK is %03o", oldmask);
} }
} }
| SITE SP UMASK check_login SP octal_number CRLF | SITE SP UMASK check_login_no_guest SP octal_number CRLF
{ {
int oldmask; int oldmask;
@@ -486,7 +488,7 @@ cmd
} }
} }
} }
| SITE SP CHMOD check_login SP octal_number SP pathname CRLF | SITE SP CHMOD check_login_no_guest SP octal_number SP pathname CRLF
{ {
if ($4 && ($8 != NULL)) { if ($4 && ($8 != NULL)) {
if ($6 > 0777) if ($6 > 0777)
@@ -526,6 +528,9 @@ cmd
char *p; char *p;
size_t s; size_t s;
if(guest)
reply(500, "Can't be done as guest.");
else{
if($4 && $6 != NULL){ if($4 && $6 != NULL){
p = strpbrk($6, " \t"); p = strpbrk($6, " \t");
if(p){ if(p){
@@ -538,6 +543,7 @@ cmd
}else }else
kauth($6, NULL); kauth($6, NULL);
} }
}
if($6 != NULL) if($6 != NULL)
free($6); free($6);
} }
@@ -553,6 +559,10 @@ cmd
if($6 != NULL) if($6 != NULL)
free($6); free($6);
} }
| SITE SP URL CRLF
{
reply(200, "http://www.pdc.kth.se/kth-krb/");
}
| STOU check_login SP pathname CRLF | STOU check_login SP pathname CRLF
{ {
if ($2 && $4 != NULL) if ($2 && $4 != NULL)
@@ -625,7 +635,7 @@ cmd
} }
; ;
rcmd rcmd
: RNFR check_login SP pathname CRLF : RNFR check_login_no_guest SP pathname CRLF
{ {
char *renamefrom(); char *renamefrom();
@@ -822,6 +832,13 @@ octal_number
; ;
check_login_no_guest : check_login
{
$$ = $1 && !guest;
if($1 && !$$)
reply(550, "Permission denied");
}
check_login check_login
: /* empty */ : /* empty */
{ {
@@ -925,6 +942,8 @@ struct tab sitetab[] = {
{ "FIND", FIND, STR1, 1, "<sp> globexpr" }, { "FIND", FIND, STR1, 1, "<sp> globexpr" },
{ "URL", URL, ARGS, 1, "?" },
{ NULL, 0, 0, 0, 0 } { NULL, 0, 0, 0, 0 }
}; };
@@ -1318,7 +1337,7 @@ help(struct tab *ctab, char *s)
} }
lreply(214, buf); lreply(214, buf);
} }
reply(214, "Direct comments to ftp-bugs@%s.", hostname); reply(214, "Direct comments to kth-krb-bugs@pdc.kth.se");
return; return;
} }
upper(s); upper(s);