summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2023-03-10 21:42:00 +0900
committerRyo Nakamura <upa@haeena.net>2023-03-10 21:42:00 +0900
commit2477647a3bf66d9dceed301622076079529f1689 (patch)
treeadc44dfc2c8ce30e594435a822167c6cb35d9a17
parente037294d3db20370710cd478ce7868f9f49aeb23 (diff)
fix uninitialized dst_path_is_dir bool
-rw-r--r--src/main.c2
-rw-r--r--src/mscp.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/src/main.c b/src/main.c
index 8bea783..811e626 100644
--- a/src/main.c
+++ b/src/main.c
@@ -376,6 +376,8 @@ int main(int argc, char **argv)
fprintf(stderr, "%s\n", mscp_get_error());
ret = mscp_join(m);
+ if (ret != 0)
+ fprintf(stderr, "%s\n", mscp_get_error());
pthread_cancel(tid_stat);
pthread_join(tid_stat, NULL);
diff --git a/src/mscp.c b/src/mscp.c
index 59eb246..7c39d73 100644
--- a/src/mscp.c
+++ b/src/mscp.c
@@ -289,12 +289,14 @@ int mscp_set_dst_path(struct mscp *m, const char *dst_path)
int mscp_prepare(struct mscp *m)
{
sftp_session src_sftp = NULL, dst_sftp = NULL;
- bool src_path_is_dir, dst_path_is_dir, dst_path_should_dir = false;
+ bool src_path_is_dir, dst_path_is_dir, dst_path_should_dir;
struct list_head tmp;
struct path *p;
struct src *s;
mstat ss, ds;
+ src_path_is_dir = dst_path_is_dir = dst_path_should_dir = false;
+
switch (m->opts->direction) {
case MSCP_DIRECTION_L2R:
src_sftp = NULL;
@@ -316,8 +318,7 @@ int mscp_prepare(struct mscp *m)
if (mstat_is_dir(ds))
dst_path_is_dir = true;
mscp_stat_free(ds);
- } else
- dst_path_is_dir = false;
+ }
/* walk a src_path recusively, and resolve path->dst_path for each src */
list_for_each_entry(s, &m->src_list, list) {
@@ -438,6 +439,9 @@ int mscp_join(struct mscp *m)
if (m->threads) {
for (n = 0; n < m->opts->nr_threads; n++) {
struct mscp_thread *t = &m->threads[n];
+ if (t->ret != 0)
+ ret = ret;
+
if (t->sftp) {
ssh_sftp_close(t->sftp);
t->sftp = NULL;