save file names when doing commands that might get aborted (and

longjmp:ed out of) to avoid overwriting them
also remove extra closing brace


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@6680 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
1999-08-02 21:57:27 +00:00
parent 1044f9a7f1
commit 2d425c89f4

View File

@@ -239,24 +239,30 @@ cmd
} }
| RETR SP pathname CRLF check_login | RETR SP pathname CRLF check_login
{ {
if ($5 && $3 != NULL) char *name = $3;
retrieve(0, $3);
if ($3 != NULL) if ($5 && name != NULL)
free($3); retrieve(0, name);
if (name != NULL)
free(name);
} }
| STOR SP pathname CRLF check_login | STOR SP pathname CRLF check_login
{ {
if ($5 && $3 != NULL) char *name = $3;
do_store($3, "w", 0);
if ($3 != NULL) if ($5 && name != NULL)
free($3); do_store(name, "w", 0);
if (name != NULL)
free(name);
} }
| APPE SP pathname CRLF check_login | APPE SP pathname CRLF check_login
{ {
if ($5 && $3 != NULL) char *name = $3;
do_store($3, "a", 0);
if ($3 != NULL) if ($5 && name != NULL)
free($3); do_store(name, "a", 0);
if (name != NULL)
free(name);
} }
| NLST CRLF check_login | NLST CRLF check_login
{ {
@@ -265,10 +271,12 @@ cmd
} }
| NLST SP STRING CRLF check_login | NLST SP STRING CRLF check_login
{ {
if ($5 && $3 != NULL) char *name = $3;
send_file_list($3);
if ($3 != NULL) if ($5 && name != NULL)
free($3); send_file_list(name);
if (name != NULL)
free(name);
} }
| LIST CRLF check_login | LIST CRLF check_login
{ {
@@ -537,16 +545,14 @@ cmd
#ifdef KRB4 #ifdef KRB4
if(guest) if(guest)
reply(500, "Can't be done as guest."); reply(500, "Can't be done as guest.");
else if($7){ else if($7)
afslog($5); afslog($5);
}
if($5) if($5)
free($5); free($5);
#else #else
reply(500, "Command not implemented."); reply(500, "Command not implemented.");
#endif #endif
} }
}
| SITE SP LOCATE SP STRING CRLF check_login | SITE SP LOCATE SP STRING CRLF check_login
{ {
if($7 && $5 != NULL) if($7 && $5 != NULL)