Only call `filename_check' for guest users.
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@811 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -911,11 +911,10 @@ done:
|
|||||||
|
|
||||||
/* filename sanity check */
|
/* filename sanity check */
|
||||||
|
|
||||||
static const char good_chars[] = "+-=_,.";
|
|
||||||
|
|
||||||
int
|
int
|
||||||
filename_check(char *filename)
|
filename_check(char *filename)
|
||||||
{
|
{
|
||||||
|
static const char good_chars[] = "+-=_,.";
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
p = strrchr(filename, '/');
|
p = strrchr(filename, '/');
|
||||||
@@ -946,7 +945,7 @@ store(char *name, char *mode, int unique)
|
|||||||
struct stat st;
|
struct stat st;
|
||||||
int (*closefunc) (FILE *);
|
int (*closefunc) (FILE *);
|
||||||
|
|
||||||
if(filename_check(name))
|
if(guest && filename_check(name))
|
||||||
return;
|
return;
|
||||||
if (unique && stat(name, &st) == 0 &&
|
if (unique && stat(name, &st) == 0 &&
|
||||||
(name = gunique(name)) == NULL) {
|
(name = gunique(name)) == NULL) {
|
||||||
@@ -1528,7 +1527,7 @@ makedir(char *name)
|
|||||||
{
|
{
|
||||||
|
|
||||||
LOGCMD("mkdir", name);
|
LOGCMD("mkdir", name);
|
||||||
if(filename_check(name))
|
if(guest && filename_check(name))
|
||||||
return;
|
return;
|
||||||
if (mkdir(name, 0777) < 0)
|
if (mkdir(name, 0777) < 0)
|
||||||
perror_reply(550, name);
|
perror_reply(550, name);
|
||||||
@@ -1584,7 +1583,7 @@ renamecmd(char *from, char *to)
|
|||||||
{
|
{
|
||||||
|
|
||||||
LOGCMD2("rename", from, to);
|
LOGCMD2("rename", from, to);
|
||||||
if(filename_check(to))
|
if(guest && filename_check(to))
|
||||||
return;
|
return;
|
||||||
if (rename(from, to) < 0)
|
if (rename(from, to) < 0)
|
||||||
perror_reply(550, "rename");
|
perror_reply(550, "rename");
|
||||||
|
Reference in New Issue
Block a user