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
ecc81fce
Commit
ecc81fce
authored
Jul 26, 2004
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use the new safe_fname() function.
parent
b4afd23c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
45 deletions
+59
-45
generator.c
generator.c
+23
-16
receiver.c
receiver.c
+20
-15
rsync.c
rsync.c
+1
-1
sender.c
sender.c
+15
-13
No files found.
generator.c
View file @
ecc81fce
...
@@ -270,14 +270,14 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -270,14 +270,14 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
return
;
return
;
if
(
verbose
>
2
)
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"recv_generator(%s,%d)
\n
"
,
fname
,
i
);
rprintf
(
FINFO
,
"recv_generator(%s,%d)
\n
"
,
safe_fname
(
fname
),
i
);
if
(
server_exclude_list
.
head
if
(
server_exclude_list
.
head
&&
check_exclude
(
&
server_exclude_list
,
fname
,
&&
check_exclude
(
&
server_exclude_list
,
fname
,
S_ISDIR
(
file
->
mode
))
<
0
)
{
S_ISDIR
(
file
->
mode
))
<
0
)
{
if
(
verbose
)
{
if
(
verbose
)
{
rprintf
(
FINFO
,
"skipping server-excluded file
\"
%s
\"\n
"
,
rprintf
(
FINFO
,
"skipping server-excluded file
\"
%s
\"\n
"
,
fname
);
safe_fname
(
fname
)
);
}
}
return
;
return
;
}
}
...
@@ -286,8 +286,10 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -286,8 +286,10 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
if
(
only_existing
&&
statret
==
-
1
&&
errno
==
ENOENT
)
{
if
(
only_existing
&&
statret
==
-
1
&&
errno
==
ENOENT
)
{
/* we only want to update existing files */
/* we only want to update existing files */
if
(
verbose
>
1
)
if
(
verbose
>
1
)
{
rprintf
(
FINFO
,
"not creating new file
\"
%s
\"\n
"
,
fname
);
rprintf
(
FINFO
,
"not creating new file
\"
%s
\"\n
"
,
safe_fname
(
fname
));
}
return
;
return
;
}
}
...
@@ -331,7 +333,7 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -331,7 +333,7 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
* and modification-time repair. */
* and modification-time repair. */
if
(
set_perms
(
fname
,
file
,
statret
?
NULL
:
&
st
,
0
)
if
(
set_perms
(
fname
,
file
,
statret
?
NULL
:
&
st
,
0
)
&&
verbose
&&
f_out
!=
-
1
)
&&
verbose
&&
f_out
!=
-
1
)
rprintf
(
FINFO
,
"%s/
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s/
\n
"
,
safe_fname
(
fname
)
);
return
;
return
;
}
}
...
@@ -367,11 +369,12 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -367,11 +369,12 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
}
}
if
(
do_symlink
(
file
->
u
.
link
,
fname
)
!=
0
)
{
if
(
do_symlink
(
file
->
u
.
link
,
fname
)
!=
0
)
{
rsyserr
(
FERROR
,
errno
,
"symlink %s ->
\"
%s
\"
failed"
,
rsyserr
(
FERROR
,
errno
,
"symlink %s ->
\"
%s
\"
failed"
,
full_fname
(
fname
),
file
->
u
.
link
);
full_fname
(
fname
),
safe_fname
(
file
->
u
.
link
)
);
}
else
{
}
else
{
set_perms
(
fname
,
file
,
NULL
,
0
);
set_perms
(
fname
,
file
,
NULL
,
0
);
if
(
verbose
)
{
if
(
verbose
)
{
rprintf
(
FINFO
,
"%s -> %s
\n
"
,
fname
,
file
->
u
.
link
);
rprintf
(
FINFO
,
"%s -> %s
\n
"
,
safe_fname
(
fname
),
safe_fname
(
file
->
u
.
link
));
}
}
}
}
#endif
#endif
...
@@ -386,15 +389,18 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -386,15 +389,18 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
delete_file
(
fname
);
delete_file
(
fname
);
if
(
verbose
>
2
)
{
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"mknod(%s,0%o,0x%x)
\n
"
,
rprintf
(
FINFO
,
"mknod(%s,0%o,0x%x)
\n
"
,
fname
,(
int
)
file
->
mode
,(
int
)
file
->
u
.
rdev
);
safe_fname
(
fname
),
(
int
)
file
->
mode
,
(
int
)
file
->
u
.
rdev
);
}
}
if
(
do_mknod
(
fname
,
file
->
mode
,
file
->
u
.
rdev
)
!=
0
)
{
if
(
do_mknod
(
fname
,
file
->
mode
,
file
->
u
.
rdev
)
!=
0
)
{
rsyserr
(
FERROR
,
errno
,
"mknod %s failed"
,
rsyserr
(
FERROR
,
errno
,
"mknod %s failed"
,
full_fname
(
fname
));
full_fname
(
fname
));
}
else
{
}
else
{
set_perms
(
fname
,
file
,
NULL
,
0
);
set_perms
(
fname
,
file
,
NULL
,
0
);
if
(
verbose
)
if
(
verbose
)
{
rprintf
(
FINFO
,
"%s
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname
));
}
}
}
}
else
{
}
else
{
set_perms
(
fname
,
file
,
&
st
,
PERMS_REPORT
);
set_perms
(
fname
,
file
,
&
st
,
PERMS_REPORT
);
...
@@ -407,7 +413,8 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -407,7 +413,8 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
return
;
return
;
if
(
!
S_ISREG
(
file
->
mode
))
{
if
(
!
S_ISREG
(
file
->
mode
))
{
rprintf
(
FINFO
,
"skipping non-regular file
\"
%s
\"\n
"
,
fname
);
rprintf
(
FINFO
,
"skipping non-regular file
\"
%s
\"\n
"
,
safe_fname
(
fname
));
return
;
return
;
}
}
...
@@ -427,7 +434,7 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -427,7 +434,7 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
if
(
do_link
(
fnamecmpbuf
,
fname
)
!=
0
)
{
if
(
do_link
(
fnamecmpbuf
,
fname
)
!=
0
)
{
if
(
verbose
>
0
)
{
if
(
verbose
>
0
)
{
rsyserr
(
FINFO
,
errno
,
"link %s => %s"
,
rsyserr
(
FINFO
,
errno
,
"link %s => %s"
,
fnamecmpbuf
,
fname
);
fnamecmpbuf
,
safe_fname
(
fname
)
);
}
}
}
}
fnamecmp
=
fnamecmpbuf
;
fnamecmp
=
fnamecmpbuf
;
...
@@ -468,14 +475,14 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -468,14 +475,14 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
if
(
opt_ignore_existing
&&
fnamecmp
==
fname
)
{
if
(
opt_ignore_existing
&&
fnamecmp
==
fname
)
{
if
(
verbose
>
1
)
if
(
verbose
>
1
)
rprintf
(
FINFO
,
"%s exists
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s exists
\n
"
,
safe_fname
(
fname
)
);
return
;
return
;
}
}
if
(
update_only
&&
fnamecmp
==
fname
if
(
update_only
&&
fnamecmp
==
fname
&&
cmp_modtime
(
st
.
st_mtime
,
file
->
modtime
)
>
0
)
{
&&
cmp_modtime
(
st
.
st_mtime
,
file
->
modtime
)
>
0
)
{
if
(
verbose
>
1
)
if
(
verbose
>
1
)
rprintf
(
FINFO
,
"%s is newer
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s is newer
\n
"
,
safe_fname
(
fname
)
);
return
;
return
;
}
}
...
@@ -511,8 +518,8 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
...
@@ -511,8 +518,8 @@ static void recv_generator(char *fname, struct file_struct *file, int i,
}
}
if
(
verbose
>
3
)
{
if
(
verbose
>
3
)
{
rprintf
(
FINFO
,
"gen mapped %s of size %.0f
\n
"
,
fnamecmp
,
rprintf
(
FINFO
,
"gen mapped %s of size %.0f
\n
"
,
(
double
)
st
.
st_size
);
safe_fname
(
fnamecmp
),
(
double
)
st
.
st_size
);
}
}
if
(
verbose
>
2
)
if
(
verbose
>
2
)
...
...
receiver.c
View file @
ecc81fce
...
@@ -62,7 +62,7 @@ static void delete_one(char *fn, int is_dir)
...
@@ -62,7 +62,7 @@ static void delete_one(char *fn, int is_dir)
rsyserr
(
FERROR
,
errno
,
"delete_one: unlink %s failed"
,
rsyserr
(
FERROR
,
errno
,
"delete_one: unlink %s failed"
,
full_fname
(
fn
));
full_fname
(
fn
));
}
else
if
(
verbose
)
}
else
if
(
verbose
)
rprintf
(
FINFO
,
"deleting %s
\n
"
,
fn
);
rprintf
(
FINFO
,
"deleting %s
\n
"
,
safe_fname
(
fn
)
);
}
else
{
}
else
{
if
(
do_rmdir
(
fn
)
!=
0
)
{
if
(
do_rmdir
(
fn
)
!=
0
)
{
if
(
errno
==
ENOTDIR
&&
keep_dirlinks
)
{
if
(
errno
==
ENOTDIR
&&
keep_dirlinks
)
{
...
@@ -74,8 +74,10 @@ static void delete_one(char *fn, int is_dir)
...
@@ -74,8 +74,10 @@ static void delete_one(char *fn, int is_dir)
"delete_one: rmdir %s failed"
,
"delete_one: rmdir %s failed"
,
full_fname
(
fn
));
full_fname
(
fn
));
}
}
}
else
if
(
verbose
)
}
else
if
(
verbose
)
{
rprintf
(
FINFO
,
"deleting directory %s
\n
"
,
fn
);
rprintf
(
FINFO
,
"deleting directory %s
\n
"
,
safe_fname
(
fn
));
}
}
}
}
}
...
@@ -115,7 +117,7 @@ void delete_files(struct file_list *flist)
...
@@ -115,7 +117,7 @@ void delete_files(struct file_list *flist)
continue
;
continue
;
if
(
verbose
>
1
)
if
(
verbose
>
1
)
rprintf
(
FINFO
,
"deleting in %s
\n
"
,
fbuf
);
rprintf
(
FINFO
,
"deleting in %s
\n
"
,
safe_fname
(
fbuf
)
);
for
(
i
=
local_file_list
->
count
-
1
;
i
>=
0
;
i
--
)
{
for
(
i
=
local_file_list
->
count
-
1
;
i
>=
0
;
i
--
)
{
if
(
max_delete
&&
deletion_count
>
max_delete
)
if
(
max_delete
&&
deletion_count
>
max_delete
)
...
@@ -126,8 +128,10 @@ void delete_files(struct file_list *flist)
...
@@ -126,8 +128,10 @@ void delete_files(struct file_list *flist)
char
*
f
=
f_name
(
local_file_list
->
files
[
i
]);
char
*
f
=
f_name
(
local_file_list
->
files
[
i
]);
if
(
make_backups
&&
(
backup_dir
||
!
is_backup_file
(
f
)))
{
if
(
make_backups
&&
(
backup_dir
||
!
is_backup_file
(
f
)))
{
make_backup
(
f
);
make_backup
(
f
);
if
(
verbose
)
if
(
verbose
)
{
rprintf
(
FINFO
,
"deleting %s
\n
"
,
f
);
rprintf
(
FINFO
,
"deleting %s
\n
"
,
safe_fname
(
f
));
}
}
else
{
}
else
{
int
mode
=
local_file_list
->
files
[
i
]
->
mode
;
int
mode
=
local_file_list
->
files
[
i
]
->
mode
;
delete_one
(
f
,
S_ISDIR
(
mode
)
!=
0
);
delete_one
(
f
,
S_ISDIR
(
mode
)
!=
0
);
...
@@ -221,7 +225,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
...
@@ -221,7 +225,7 @@ static int receive_data(int f_in, char *fname_r, int fd_r, OFF_T size_r,
mapbuf
=
map_file
(
fd_r
,
size_r
,
sum
.
blength
);
mapbuf
=
map_file
(
fd_r
,
size_r
,
sum
.
blength
);
if
(
verbose
>
2
)
{
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"recv mapped %s of size %.0f
\n
"
,
rprintf
(
FINFO
,
"recv mapped %s of size %.0f
\n
"
,
fname_r
,
(
double
)
size_r
);
safe_fname
(
fname_r
)
,
(
double
)
size_r
);
}
}
}
else
}
else
mapbuf
=
NULL
;
mapbuf
=
NULL
;
...
@@ -396,15 +400,15 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
...
@@ -396,15 +400,15 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
fname
=
f_name_to
(
file
,
fbuf
);
fname
=
f_name_to
(
file
,
fbuf
);
if
(
dry_run
)
{
if
(
dry_run
)
{
if
(
!
am_server
&&
verbose
)
if
(
!
am_server
&&
verbose
)
/* log the transfer */
rprintf
(
FINFO
,
"%s
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname
)
);
continue
;
continue
;
}
}
initial_stats
=
stats
;
initial_stats
=
stats
;
if
(
verbose
>
2
)
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"recv_files(%s)
\n
"
,
fname
);
rprintf
(
FINFO
,
"recv_files(%s)
\n
"
,
safe_fname
(
fname
)
);
fnamecmp
=
fname
;
fnamecmp
=
fname
;
...
@@ -416,7 +420,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
...
@@ -416,7 +420,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
}
}
if
(
i
<
next_gen_i
)
{
if
(
i
<
next_gen_i
)
{
rprintf
(
FINFO
,
"skipping update for
\"
%s
\"\n
"
,
rprintf
(
FINFO
,
"skipping update for
\"
%s
\"\n
"
,
fname
);
safe_fname
(
fname
)
);
discard_receive_data
(
f_in
,
file
->
length
);
discard_receive_data
(
f_in
,
file
->
length
);
continue
;
continue
;
}
}
...
@@ -428,7 +432,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
...
@@ -428,7 +432,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
if
(
verbose
)
{
if
(
verbose
)
{
rprintf
(
FINFO
,
rprintf
(
FINFO
,
"skipping server-excluded update for
\"
%s
\"\n
"
,
"skipping server-excluded update for
\"
%s
\"\n
"
,
fname
);
safe_fname
(
fname
)
);
}
}
discard_receive_data
(
f_in
,
file
->
length
);
discard_receive_data
(
f_in
,
file
->
length
);
continue
;
continue
;
...
@@ -527,8 +531,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
...
@@ -527,8 +531,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
cleanup_set
(
fnametmp
,
fname
,
file
,
fd1
,
fd2
);
cleanup_set
(
fnametmp
,
fname
,
file
,
fd1
,
fd2
);
}
}
if
(
!
am_server
&&
verbose
)
if
(
!
am_server
&&
verbose
)
/* log the transfer */
rprintf
(
FINFO
,
"%s
\n
"
,
fname
);
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname
)
);
/* recv file data */
/* recv file data */
recv_ok
=
receive_data
(
f_in
,
fnamecmp
,
fd1
,
st
.
st_size
,
recv_ok
=
receive_data
(
f_in
,
fnamecmp
,
fd1
,
st
.
st_size
,
...
@@ -567,7 +571,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
...
@@ -567,7 +571,8 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
}
}
rprintf
(
msgtype
,
rprintf
(
msgtype
,
"%s: %s failed verification -- update %sed%s.
\n
"
,
"%s: %s failed verification -- update %sed%s.
\n
"
,
errstr
,
fname
,
keptstr
,
redostr
);
errstr
,
safe_fname
(
fname
),
keptstr
,
redostr
);
}
}
if
(
csum_length
!=
SUM_LENGTH
)
{
if
(
csum_length
!=
SUM_LENGTH
)
{
char
buf
[
4
];
char
buf
[
4
];
...
...
rsync.c
View file @
ecc81fce
...
@@ -98,7 +98,7 @@ int delete_file(char *fname)
...
@@ -98,7 +98,7 @@ int delete_file(char *fname)
continue
;
continue
;
pathjoin
(
buf
,
sizeof
buf
,
fname
,
dname
);
pathjoin
(
buf
,
sizeof
buf
,
fname
,
dname
);
if
(
verbose
>
0
)
if
(
verbose
>
0
)
rprintf
(
FINFO
,
"deleting %s
\n
"
,
buf
);
rprintf
(
FINFO
,
"deleting %s
\n
"
,
safe_fname
(
buf
)
);
if
(
delete_file
(
buf
)
!=
0
)
{
if
(
delete_file
(
buf
)
!=
0
)
{
closedir
(
d
);
closedir
(
d
);
return
-
1
;
return
-
1
;
...
...
sender.c
View file @
ecc81fce
...
@@ -115,7 +115,7 @@ void send_files(struct file_list *flist, int f_out, int f_in)
...
@@ -115,7 +115,7 @@ void send_files(struct file_list *flist, int f_out, int f_in)
struct
sum_struct
*
s
;
struct
sum_struct
*
s
;
struct
map_struct
*
mbuf
=
NULL
;
struct
map_struct
*
mbuf
=
NULL
;
STRUCT_STAT
st
;
STRUCT_STAT
st
;
char
fname
[
MAXPATHLEN
];
char
*
fname2
,
fname
[
MAXPATHLEN
];
int
i
;
int
i
;
struct
file_struct
*
file
;
struct
file_struct
*
file
;
int
phase
=
0
;
int
phase
=
0
;
...
@@ -160,15 +160,14 @@ void send_files(struct file_list *flist, int f_out, int f_in)
...
@@ -160,15 +160,14 @@ void send_files(struct file_list *flist, int f_out, int f_in)
fname
[
offset
++
]
=
'/'
;
fname
[
offset
++
]
=
'/'
;
}
else
}
else
offset
=
0
;
offset
=
0
;
f_name_to
(
file
,
fname
+
offset
);
f
name2
=
f
_name_to
(
file
,
fname
+
offset
);
if
(
verbose
>
2
)
if
(
verbose
>
2
)
rprintf
(
FINFO
,
"send_files(%d, %s)
\n
"
,
i
,
fname
);
rprintf
(
FINFO
,
"send_files(%d, %s)
\n
"
,
i
,
fname
);
if
(
dry_run
)
{
if
(
dry_run
)
{
if
(
!
am_server
&&
verbose
)
{
if
(
!
am_server
&&
verbose
)
/* log the transfer */
rprintf
(
FINFO
,
"%s
\n
"
,
fname
+
offset
);
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname2
));
}
write_int
(
f_out
,
i
);
write_int
(
f_out
,
i
);
continue
;
continue
;
}
}
...
@@ -213,19 +212,20 @@ void send_files(struct file_list *flist, int f_out, int f_in)
...
@@ -213,19 +212,20 @@ void send_files(struct file_list *flist, int f_out, int f_in)
if
(
verbose
>
2
)
{
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"send_files mapped %s of size %.0f
\n
"
,
rprintf
(
FINFO
,
"send_files mapped %s of size %.0f
\n
"
,
fname
,
(
double
)
st
.
st_size
);
safe_fname
(
fname
)
,
(
double
)
st
.
st_size
);
}
}
write_int
(
f_out
,
i
);
write_int
(
f_out
,
i
);
write_sum_head
(
f_out
,
s
);
write_sum_head
(
f_out
,
s
);
if
(
verbose
>
2
)
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"calling match_sums %s
\n
"
,
fname
);
rprintf
(
FINFO
,
"calling match_sums %s
\n
"
,
safe_fname
(
fname
));
if
(
!
am_server
&&
verbose
)
{
rprintf
(
FINFO
,
"%s
\n
"
,
fname
+
offset
);
}
}
if
(
!
am_server
&&
verbose
)
/* log the transfer */
rprintf
(
FINFO
,
"%s
\n
"
,
safe_fname
(
fname2
));
set_compression
(
fname
);
set_compression
(
fname
);
match_sums
(
f_out
,
s
,
mbuf
,
st
.
st_size
);
match_sums
(
f_out
,
s
,
mbuf
,
st
.
st_size
);
...
@@ -244,8 +244,10 @@ void send_files(struct file_list *flist, int f_out, int f_in)
...
@@ -244,8 +244,10 @@ void send_files(struct file_list *flist, int f_out, int f_in)
free_sums
(
s
);
free_sums
(
s
);
if
(
verbose
>
2
)
if
(
verbose
>
2
)
{
rprintf
(
FINFO
,
"sender finished %s
\n
"
,
fname
);
rprintf
(
FINFO
,
"sender finished %s
\n
"
,
safe_fname
(
fname
));
}
}
}
if
(
verbose
>
2
)
if
(
verbose
>
2
)
...
...
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