fixed sf.net bugs

This commit is contained in:
hsn 2004-11-15 17:17:57 +00:00
parent 64fbc6327b
commit 8d63e4a1ea
7 changed files with 25 additions and 12 deletions

View File

@ -1,3 +1,8 @@
fixed sf bug 1060594: fspd: owner can't rename files
fixed sf bug 1060558: fpro 'l' sets 'm' flag instead
fixed sf bug 1060558: fpro 'l' flag was not correctly saved
into filesystem
fmvcmd: do not send trailing junk to the server
print key=, seq= in fspd debugs with fixed width for easy reading
added BUGS and HISTORY sections to fspscan.1 manual page
Lamerpack: disable most of command line options in fspd and print

1
TODO
View File

@ -49,6 +49,7 @@ do not use global variables
CLIENTS
:high:
fpro without directory name do not works
normalize return error codes of all clients
write new clients for new commands - fpasswd finfo
:low:

View File

@ -63,7 +63,7 @@ static void rename_file (const char *fname,const char *target)
}
/* send our nicely crafted junk to the server */
reply=client_interact (CC_RENAME,0,n+l,buf,0,NULL);
reply=client_interact (CC_RENAME,0,n,buf,0,NULL);
if(reply->cmd==CC_ERR)
{

View File

@ -66,6 +66,7 @@ int main (int argc, char ** argv)
env_client();
if(argv[1] && (argv[1][0] == '+' || argv[1][0] == '-') && !argv[1][2]) {
/* set pro command */
key = *++argv;
while(*++argv) {
if(!(av = glob(*argv))) {

View File

@ -1,6 +1,6 @@
dnl Process this file with autoconf to produce a working configure script.
dnl tested with autoconf 2.57
AC_INIT(fsp,2.8.1b21,hsn@netmag.cz)
AC_INIT(fsp,2.8.1b22,hsn@netmag.cz)
AC_CONFIG_SRCDIR(server/main.c)
AM_INIT_AUTOMAKE([dist-bzip2])
AM_MAINTAINER_MODE

View File

@ -69,7 +69,7 @@ void save_access_rights (DIRINFO *di)
if(di->protection & DIR_ADD) touch(FSP_ADD);
if(di->protection & DIR_MKDIR) touch(FSP_MKDIR);
if(di->protection & DIR_RENAME) touch(FSP_RENAME);
if(!di->protection& DIR_LIST) touch(FSP_NOLIST);
if(! (di->protection& DIR_LIST)) touch(FSP_NOLIST);
/* step3 pazzwordz */
if(di->public_password) save_password(FSP_PASSWORD,di->public_password);

View File

@ -752,6 +752,7 @@ const char *server_set_pro (DIRINFO *di, const char * key)
break;
case 'l':
act=DIR_LIST;
break;
case 'r':
act=DIR_RENAME;
break;
@ -1091,6 +1092,11 @@ const char *server_rename (char * ub, unsigned int l1, unsigned long inet)
else
return ("Refusing to operate on special files");
/* validate source object */
/* we must turn \0 back into \n in password field */
if(src.passwd)
{
ub[n-strlen(src.passwd)-2]='\n';
}
pe=validate_path(ub,n,&src,&sdir,0);
if(pe) return pe;
@ -1121,11 +1127,11 @@ const char *server_rename (char * ub, unsigned int l1, unsigned long inet)
/* no, do simple rename */
pe=require_access_rights( sdir,DIR_RENAME,inet,src.passwd);
if(pe[0]!='N')
if(pe[0]!='N' && pe[0]!='O')
return ("Permission denied");
if(istargetdir==0)
pe=require_access_rights( sdir,DIR_DEL,inet,src.passwd);
if(pe[0]!='N')
if(pe[0]!='N' && pe[0]!='O')
return ("No permission for overwriting files");
/* now go to the action */
if (rename(src.fullp,dest.fullp))