diff --git a/pclsync/pfs.c b/pclsync/pfs.c index 178d409..5a9987c 100644 --- a/pclsync/pfs.c +++ b/pclsync/pfs.c @@ -3651,21 +3651,13 @@ static void psync_fuse_thread() { } pthread_mutex_unlock(&start_mutex); pdbg_logf(D_NOTICE, "running fuse_loop_mt"); - - // Check shutdown flag periodically during FUSE loop - while (!shutdown_requested) { - fr = fuse_loop_mt(psync_fuse); - if (fr != 0 || shutdown_requested) { - break; - } - } - + fr = fuse_loop_mt(psync_fuse); + if (shutdown_requested) { pdbg_logf(D_NOTICE, "shutdown requested, exiting fuse loop"); pfs_do_stop(); - exit(0); } - + pdbg_logf(D_NOTICE, "fuse_loop_mt exited with code %d, running fuse_destroy", fr); pthread_mutex_lock(&start_mutex); fuse_destroy(psync_fuse); diff --git a/pclsync/pstatus.c b/pclsync/pstatus.c index f8630b0..31270d2 100644 --- a/pclsync/pstatus.c +++ b/pclsync/pstatus.c @@ -222,7 +222,11 @@ void pstatus_upload_recalc() { putil_strcat(fscpath, "/", fileidhex, NULL); if (!stat(filename, &st)) { filestou++; - bytestou += pfile_stat_size(&st); + uint64_t fsize = pfile_stat_size(&st); + if (fsize > UINT64_MAX - bytestou) + bytestou = UINT64_MAX; + else + bytestou += fsize; } free(filename); }