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
6c2e5b56
Commit
6c2e5b56
authored
Feb 09, 2004
by
Wayne Davison
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Die if we overflowed the args[] array when building up the remote
command in do_cmd().
parent
2289bf64
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
11 additions
and
6 deletions
+11
-6
main.c
main.c
+11
-6
No files found.
main.c
View file @
6c2e5b56
...
...
@@ -221,12 +221,13 @@ static void show_malloc_stats(void)
/* Start the remote shell. cmd may be NULL to use the default. */
static
pid_t
do_cmd
(
char
*
cmd
,
char
*
machine
,
char
*
user
,
char
*
path
,
int
*
f_in
,
int
*
f_out
)
static
pid_t
do_cmd
(
char
*
cmd
,
char
*
machine
,
char
*
user
,
char
*
path
,
int
*
f_in
,
int
*
f_out
)
{
int
i
,
argc
=
0
;
char
*
args
[
100
];
int
i
,
argc
=
0
;
pid_t
ret
;
char
*
tok
,
*
dir
=
NULL
;
char
*
tok
,
*
dir
=
NULL
;
int
dash_l_set
=
0
;
if
(
!
read_batch
&&
!
local_server
)
{
...
...
@@ -239,9 +240,8 @@ static pid_t do_cmd(char *cmd,char *machine,char *user,char *path,int *f_in,int
if
(
!
cmd
)
goto
oom
;
for
(
tok
=
strtok
(
cmd
,
" "
);
tok
;
tok
=
strtok
(
NULL
,
" "
))
{
for
(
tok
=
strtok
(
cmd
,
" "
);
tok
;
tok
=
strtok
(
NULL
,
" "
))
args
[
argc
++
]
=
tok
;
}
/* check to see if we've already been given '-l user' in
* the remote-shell command */
...
...
@@ -285,6 +285,11 @@ static pid_t do_cmd(char *cmd,char *machine,char *user,char *path,int *f_in,int
if
(
!
daemon_over_rsh
&&
path
&&
*
path
)
args
[
argc
++
]
=
path
;
if
(
argc
>=
(
int
)(
sizeof
args
/
sizeof
args
[
0
]))
{
rprintf
(
FERROR
,
"internal: args[] overflowed in do_cmd()
\n
"
);
exit_cleanup
(
RERR_MALLOC
);
/* XXX Need better RERR? */
}
args
[
argc
]
=
NULL
;
if
(
verbose
>
3
)
{
...
...
@@ -491,7 +496,7 @@ static void do_server_recv(int f_in, int f_out, int argc,char *argv[])
{
int
status
;
struct
file_list
*
flist
;
char
*
local_name
=
NULL
;
char
*
local_name
=
NULL
;
char
*
dir
=
NULL
;
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