Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liblongpath-rsync
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liblongpath
liblongpath-rsync
Commits
4875d6b6
Commit
4875d6b6
authored
Feb 07, 2005
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding more calls to safe_fname().
parent
54b40598
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
82 additions
and
58 deletions
+82
-58
authenticate.c
authenticate.c
+4
-3
backup.c
backup.c
+12
-8
batch.c
batch.c
+16
-14
cleanup.c
cleanup.c
+2
-2
clientserver.c
clientserver.c
+10
-7
generator.c
generator.c
+14
-8
log.c
log.c
+1
-1
options.c
options.c
+4
-2
params.c
params.c
+1
-1
pipe.c
pipe.c
+2
-1
rsync.c
rsync.c
+16
-11
No files found.
authenticate.c
View file @
4875d6b6
...
...
@@ -87,7 +87,7 @@ static int get_secret(int module, char *user, char *secret, int len)
return
0
;
if
(
do_stat
(
fname
,
&
st
)
==
-
1
)
{
rsyserr
(
FLOG
,
errno
,
"stat(%s)"
,
fname
);
rsyserr
(
FLOG
,
errno
,
"stat(%s)"
,
safe_fname
(
fname
)
);
ok
=
0
;
}
else
if
(
lp_strict_modes
(
module
))
{
if
((
st
.
st_mode
&
06
)
!=
0
)
{
...
...
@@ -156,14 +156,15 @@ static char *getpassf(char *filename)
return
NULL
;
if
((
fd
=
open
(
filename
,
O_RDONLY
))
<
0
)
{
rsyserr
(
FERROR
,
errno
,
"could not open password file
\"
%s
\"
"
,
filename
);
rsyserr
(
FERROR
,
errno
,
"could not open password file
\"
%s
\"
"
,
safe_fname
(
filename
));
if
(
envpw
)
rprintf
(
FERROR
,
"falling back to RSYNC_PASSWORD environment variable.
\n
"
);
return
NULL
;
}
if
(
do_stat
(
filename
,
&
st
)
==
-
1
)
{
rsyserr
(
FERROR
,
errno
,
"stat(%s)"
,
filename
);
rsyserr
(
FERROR
,
errno
,
"stat(%s)"
,
safe_fname
(
filename
)
);
ok
=
0
;
}
else
if
((
st
.
st_mode
&
06
)
!=
0
)
{
rprintf
(
FERROR
,
"password file must not be other-accessible
\n
"
);
...
...
backup.c
View file @
4875d6b6
...
...
@@ -64,11 +64,13 @@ static int make_simple_backup(char *fname)
/* cygwin (at least version b19) reports EINVAL */
if
(
errno
!=
ENOENT
&&
errno
!=
EINVAL
)
{
rsyserr
(
FERROR
,
errno
,
"rename %s to backup %s"
,
fname
,
fnamebak
);
"rename %s to backup %s"
,
safe_fname
(
fname
),
safe_fname
(
fnamebak
));
return
0
;
}
}
else
if
(
verbose
>
1
)
{
rprintf
(
FINFO
,
"backed up %s to %s
\n
"
,
fname
,
fnamebak
);
rprintf
(
FINFO
,
"backed up %s to %s
\n
"
,
safe_fname
(
fname
),
safe_fname
(
fnamebak
));
}
return
1
;
}
...
...
@@ -182,7 +184,7 @@ static int keep_backup(char *fname)
}
else
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"make_backup: DEVICE %s successful.
\n
"
,
fname
);
safe_fname
(
fname
)
);
}
}
kept
=
1
;
...
...
@@ -219,7 +221,7 @@ static int keep_backup(char *fname)
&&
(
errno
!=
ENOENT
||
make_bak_dir
(
buf
)
<
0
||
do_symlink
(
file
->
u
.
link
,
buf
)
<
0
))
{
rsyserr
(
FERROR
,
errno
,
"link %s ->
\"
%s
\"
"
,
full_fname
(
buf
),
file
->
u
.
link
);
full_fname
(
buf
),
safe_fname
(
file
->
u
.
link
)
);
}
do_unlink
(
fname
);
kept
=
1
;
...
...
@@ -228,7 +230,7 @@ static int keep_backup(char *fname)
if
(
!
kept
&&
!
S_ISREG
(
file
->
mode
))
{
rprintf
(
FINFO
,
"make_bak: skipping non-regular file %s
\n
"
,
fname
);
safe_fname
(
fname
)
);
return
1
;
}
...
...
@@ -236,7 +238,7 @@ static int keep_backup(char *fname)
if
(
!
kept
)
{
if
(
robust_move
(
fname
,
buf
)
!=
0
)
{
rsyserr
(
FERROR
,
errno
,
"keep_backup failed: %s ->
\"
%s
\"
"
,
full_fname
(
fname
),
buf
);
full_fname
(
fname
),
safe_fname
(
buf
)
);
}
else
if
(
st
.
st_nlink
>
1
)
{
/* If someone has hard-linked the file into the backup
* dir, rename() might return success but do nothing! */
...
...
@@ -246,8 +248,10 @@ static int keep_backup(char *fname)
set_perms
(
buf
,
file
,
NULL
,
0
);
free
(
file
);
if
(
verbose
>
1
)
rprintf
(
FINFO
,
"backed up %s to %s
\n
"
,
fname
,
buf
);
if
(
verbose
>
1
)
{
rprintf
(
FINFO
,
"backed up %s to %s
\n
"
,
safe_fname
(
fname
),
safe_fname
(
buf
));
}
return
1
;
}
...
...
batch.c
View file @
4875d6b6
...
...
@@ -143,7 +143,8 @@ void write_batch_shell_file(int argc, char *argv[], int file_arg_cnt)
fd
=
do_open
(
filename
,
O_WRONLY
|
O_CREAT
|
O_TRUNC
,
S_IRUSR
|
S_IWUSR
|
S_IEXEC
);
if
(
fd
<
0
)
{
rsyserr
(
FERROR
,
errno
,
"Batch file %s open error"
,
filename
);
rsyserr
(
FERROR
,
errno
,
"Batch file %s open error"
,
safe_fname
(
filename
));
exit_cleanup
(
1
);
}
...
...
@@ -190,7 +191,8 @@ void write_batch_shell_file(int argc, char *argv[], int file_arg_cnt)
if
(
filter_list
.
head
)
write_filter_rules
(
fd
);
if
(
write
(
fd
,
"
\n
"
,
1
)
!=
1
||
close
(
fd
)
<
0
)
{
rsyserr
(
FERROR
,
errno
,
"Batch file %s write error"
,
filename
);
rsyserr
(
FERROR
,
errno
,
"Batch file %s write error"
,
safe_fname
(
filename
));
exit_cleanup
(
1
);
}
}
...
...
@@ -207,25 +209,25 @@ void show_flist(int index, struct file_struct **fptr)
rprintf
(
FINFO
,
"flist->length=%.0f
\n
"
,
(
double
)
fptr
[
i
]
->
length
);
rprintf
(
FINFO
,
"flist->mode=%#o
\n
"
,
(
int
)
fptr
[
i
]
->
mode
);
rprintf
(
FINFO
,
"flist->basename=%s
\n
"
,
fptr
[
i
]
->
basename
);
if
(
fptr
[
i
]
->
dirname
)
rprintf
(
FINFO
,
"flist->basename=%s
\n
"
,
safe_fname
(
fptr
[
i
]
->
basename
));
if
(
fptr
[
i
]
->
dirname
)
{
rprintf
(
FINFO
,
"flist->dirname=%s
\n
"
,
fptr
[
i
]
->
dirname
);
if
(
am_sender
&&
fptr
[
i
]
->
dir
.
root
)
safe_fname
(
fptr
[
i
]
->
dirname
));
}
if
(
am_sender
&&
fptr
[
i
]
->
dir
.
root
)
{
rprintf
(
FINFO
,
"flist->dir.root=%s
\n
"
,
fptr
[
i
]
->
dir
.
root
);
safe_fname
(
fptr
[
i
]
->
dir
.
root
));
}
}
}
/* for debugging */
void
show_argvs
(
int
argc
,
char
*
argv
[])
{
/* for debugging * */
int
i
;
rprintf
(
FINFO
,
"BATCH.C:show_argvs,argc=%d
\n
"
,
argc
);
for
(
i
=
0
;
i
<
argc
;
i
++
)
{
/* if (argv[i]) */
rprintf
(
FINFO
,
"i=%d,argv[i]=%s
\n
"
,
i
,
argv
[
i
]);
}
rprintf
(
FINFO
,
"BATCH.C:show_argvs,argc=%d
\n
"
,
argc
);
for
(
i
=
0
;
i
<
argc
;
i
++
)
rprintf
(
FINFO
,
"i=%d,argv[i]=%s
\n
"
,
i
,
safe_fname
(
argv
[
i
]));
}
cleanup.c
View file @
4875d6b6
...
...
@@ -99,7 +99,7 @@ void _exit_cleanup(int code, const char *file, int line)
if
(
verbose
>
3
)
{
rprintf
(
FINFO
,
"_exit_cleanup(code=%d, file=%s, line=%d): entered
\n
"
,
code
,
file
,
line
);
code
,
safe_fname
(
file
)
,
line
);
}
if
(
cleanup_child_pid
!=
-
1
)
{
...
...
@@ -147,7 +147,7 @@ void _exit_cleanup(int code, const char *file, int line)
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"_exit_cleanup(code=%d, file=%s, line=%d): about to call exit(%d)
\n
"
,
ocode
,
file
,
line
,
code
);
ocode
,
safe_fname
(
file
)
,
line
,
code
);
}
close_all
();
...
...
clientserver.c
View file @
4875d6b6
...
...
@@ -258,9 +258,8 @@ static int rsync_module(int f_in, int f_out, int i)
if
(
!
claim_connection
(
lp_lock_file
(
i
),
lp_max_connections
(
i
)))
{
if
(
errno
)
{
rsyserr
(
FLOG
,
errno
,
"failed to open lock file %s"
,
lp_lock_file
(
i
));
io_printf
(
f_out
,
"@ERROR: failed to open lock file %s
\n
"
,
lp_lock_file
(
i
));
safe_fname
(
lp_lock_file
(
i
)));
io_printf
(
f_out
,
"@ERROR: failed to open lock file
\n
"
);
}
else
{
rprintf
(
FLOG
,
"max connections (%d) reached
\n
"
,
lp_max_connections
(
i
));
...
...
@@ -360,20 +359,23 @@ static int rsync_module(int f_in, int f_out, int i)
* in which case we fail.
*/
if
(
chroot
(
lp_path
(
i
)))
{
rsyserr
(
FLOG
,
errno
,
"chroot %s failed"
,
lp_path
(
i
));
rsyserr
(
FLOG
,
errno
,
"chroot %s failed"
,
safe_fname
(
lp_path
(
i
)));
io_printf
(
f_out
,
"@ERROR: chroot failed
\n
"
);
return
-
1
;
}
if
(
!
push_dir
(
"/"
))
{
rsyserr
(
FLOG
,
errno
,
"chdir %s failed
\n
"
,
lp_path
(
i
));
rsyserr
(
FLOG
,
errno
,
"chdir %s failed
\n
"
,
safe_fname
(
lp_path
(
i
)));
io_printf
(
f_out
,
"@ERROR: chdir failed
\n
"
);
return
-
1
;
}
}
else
{
if
(
!
push_dir
(
lp_path
(
i
)))
{
rsyserr
(
FLOG
,
errno
,
"chdir %s failed
\n
"
,
lp_path
(
i
));
rsyserr
(
FLOG
,
errno
,
"chdir %s failed
\n
"
,
safe_fname
(
lp_path
(
i
)));
io_printf
(
f_out
,
"@ERROR: chdir failed
\n
"
);
return
-
1
;
}
...
...
@@ -646,7 +648,8 @@ int daemon_main(void)
if
((
fd
=
do_open
(
lp_pid_file
(),
O_WRONLY
|
O_CREAT
|
O_TRUNC
,
0666
&
~
orig_umask
))
==
-
1
)
{
cleanup_set_pid
(
0
);
rsyserr
(
FLOG
,
errno
,
"failed to create pid file %s"
,
pid_file
);
rsyserr
(
FLOG
,
errno
,
"failed to create pid file %s"
,
safe_fname
(
pid_file
));
exit_cleanup
(
RERR_FILEIO
);
}
snprintf
(
pidbuf
,
sizeof
pidbuf
,
"%ld
\n
"
,
(
long
)
pid
);
...
...
generator.c
View file @
4875d6b6
...
...
@@ -251,8 +251,10 @@ static void recv_generator(char *fname, struct file_list *flist,
if
(
list_only
)
return
;
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"recv_generator(%s,%d)
\n
"
,
safe_fname
(
fname
),
ndx
);
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"recv_generator(%s,%d)
\n
"
,
safe_fname
(
fname
),
ndx
);
}
if
(
server_filter_list
.
head
&&
check_filter
(
&
server_filter_list
,
fname
,
...
...
@@ -318,8 +320,10 @@ static void recv_generator(char *fname, struct file_list *flist,
delete_in_dir
(
flist
,
fname
,
file
);
return
;
}
else
if
(
max_size
&&
file
->
length
>
max_size
)
{
if
(
verbose
>
1
)
rprintf
(
FINFO
,
"%s is over max-size
\n
"
,
fname
);
if
(
verbose
>
1
)
{
rprintf
(
FINFO
,
"%s is over max-size
\n
"
,
safe_fname
(
fname
));
}
return
;
}
...
...
@@ -327,8 +331,10 @@ static void recv_generator(char *fname, struct file_list *flist,
#if SUPPORT_LINKS
if
(
safe_symlinks
&&
unsafe_symlink
(
file
->
u
.
link
,
fname
))
{
if
(
verbose
)
{
rprintf
(
FINFO
,
"ignoring unsafe symlink %s ->
\"
%s
\"\n
"
,
full_fname
(
fname
),
file
->
u
.
link
);
rprintf
(
FINFO
,
"ignoring unsafe symlink %s ->
\"
%s
\"\n
"
,
full_fname
(
fname
),
safe_fname
(
file
->
u
.
link
));
}
return
;
}
...
...
@@ -446,7 +452,7 @@ static void recv_generator(char *fname, struct file_list *flist,
if
(
verbose
)
{
rsyserr
(
FINFO
,
errno
,
"link %s => %s"
,
f
namecmpbuf
,
f
ull_fname
(
fnamecmpbuf
)
,
safe_fname
(
fname
));
}
fnamecmp
=
fnamecmpbuf
;
...
...
@@ -593,7 +599,7 @@ notify_others:
set_perms
(
backupptr
,
back_file
,
NULL
,
0
);
if
(
verbose
>
1
)
{
rprintf
(
FINFO
,
"backed up %s to %s
\n
"
,
fname
,
backupptr
);
safe_fname
(
fname
),
safe_fname
(
backupptr
)
);
}
free
(
back_file
);
}
...
...
log.c
View file @
4875d6b6
...
...
@@ -376,7 +376,7 @@ static void log_formatted(enum logcode code,
case
'f'
:
pathjoin
(
buf2
,
sizeof
buf2
,
am_sender
&&
file
->
dir
.
root
?
file
->
dir
.
root
:
""
,
f_name
(
file
));
safe_fname
(
f_name
(
file
)
));
clean_fname
(
buf2
,
0
);
n
=
buf2
;
if
(
*
n
==
'/'
)
n
++
;
...
...
options.c
View file @
4875d6b6
...
...
@@ -993,8 +993,10 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
backup_dir_buf
[
backup_dir_len
++
]
=
'/'
;
backup_dir_buf
[
backup_dir_len
]
=
'\0'
;
}
if
(
verbose
>
1
&&
!
am_sender
)
rprintf
(
FINFO
,
"backup_dir is %s
\n
"
,
backup_dir_buf
);
if
(
verbose
>
1
&&
!
am_sender
)
{
rprintf
(
FINFO
,
"backup_dir is %s
\n
"
,
safe_fname
(
backup_dir_buf
));
}
}
else
if
(
!
backup_suffix_len
&&
(
!
am_server
||
!
am_sender
))
{
snprintf
(
err_buf
,
sizeof
err_buf
,
"--suffix cannot be a null string without --backup-dir
\n
"
);
...
...
params.c
View file @
4875d6b6
...
...
@@ -492,7 +492,7 @@ static FILE *OpenConfFile( char *FileName )
if
(
NULL
==
OpenedFile
)
{
rsyserr
(
FERROR
,
errno
,
"rsync: unable to open configuration file
\"
%s
\"
"
,
FileName
);
safe_fname
(
FileName
)
);
}
return
(
OpenedFile
);
...
...
pipe.c
View file @
4875d6b6
...
...
@@ -79,7 +79,8 @@ pid_t piped_child(char **command, int *f_in, int *f_out)
if
(
blocking_io
>
0
)
set_blocking
(
STDOUT_FILENO
);
execvp
(
command
[
0
],
command
);
rsyserr
(
FERROR
,
errno
,
"Failed to exec %s"
,
command
[
0
]);
rsyserr
(
FERROR
,
errno
,
"Failed to exec %s"
,
safe_fname
(
command
[
0
]));
exit_cleanup
(
RERR_IPC
);
}
...
...
rsync.c
View file @
4875d6b6
...
...
@@ -123,9 +123,10 @@ int delete_file(char *fname, int flags)
else
flags
&=
~
DEL_DIR
;
if
(
verbose
)
if
(
verbose
)
{
rprintf
(
FINFO
,
"deleting %s%s
\n
"
,
safe_fname
(
buf
),
flags
&
DEL_DIR
?
"/"
:
""
);
}
if
(
delete_file
(
buf
,
flags
)
!=
0
)
{
closedir
(
d
);
return
-
1
;
...
...
@@ -193,13 +194,15 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st,
if
(
verbose
>
2
)
{
if
(
change_uid
)
{
rprintf
(
FINFO
,
"set uid of %s from %ld to %ld
\n
"
,
fname
,
(
long
)
st
->
st_uid
,
(
long
)
file
->
uid
);
"set uid of %s from %ld to %ld
\n
"
,
safe_fname
(
fname
),
(
long
)
st
->
st_uid
,
(
long
)
file
->
uid
);
}
if
(
change_gid
)
{
rprintf
(
FINFO
,
"set gid of %s from %ld to %ld
\n
"
,
fname
,
(
long
)
st
->
st_gid
,
(
long
)
file
->
gid
);
"set gid of %s from %ld to %ld
\n
"
,
safe_fname
(
fname
),
(
long
)
st
->
st_gid
,
(
long
)
file
->
gid
);
}
}
if
(
do_lchown
(
fname
,
...
...
@@ -237,9 +240,9 @@ int set_perms(char *fname,struct file_struct *file,STRUCT_STAT *st,
if
(
verbose
>
1
&&
flags
&
PERMS_REPORT
)
{
if
(
updated
)
rprintf
(
FINFO
,
"%s
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname
)
);
else
rprintf
(
FINFO
,
"%s is uptodate
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s is uptodate
\n
"
,
safe_fname
(
fname
)
);
}
return
updated
;
}
...
...
@@ -269,7 +272,7 @@ void finish_transfer(char *fname, char *fnametmp, struct file_struct *file,
if
(
inplace
)
{
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"finishing %s
\n
"
,
fname
);
rprintf
(
FINFO
,
"finishing %s
\n
"
,
safe_fname
(
fname
)
);
goto
do_set_perms
;
}
...
...
@@ -280,13 +283,15 @@ void finish_transfer(char *fname, char *fnametmp, struct file_struct *file,
set_perms
(
fnametmp
,
file
,
NULL
,
ok_to_set_time
?
0
:
PERMS_SKIP_MTIME
);
/* move tmp file over real file */
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"renaming %s to %s
\n
"
,
fnametmp
,
fname
);
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"renaming %s to %s
\n
"
,
safe_fname
(
fnametmp
),
safe_fname
(
fname
));
}
ret
=
robust_rename
(
fnametmp
,
fname
,
file
->
mode
&
INITACCESSPERMS
);
if
(
ret
<
0
)
{
rsyserr
(
FERROR
,
errno
,
"%s %s ->
\"
%s
\"
"
,
ret
==
-
2
?
"copy"
:
"rename"
,
full_fname
(
fnametmp
),
fname
);
full_fname
(
fnametmp
),
safe_fname
(
fname
)
);
do_unlink
(
fnametmp
);
return
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment