-
Notifications
You must be signed in to change notification settings - Fork 387
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
3.4.0 -H flag broken #702
Comments
I was able to reproduce an issue with the -H flag using a single a single src
Here is the debug log : outlog.txt With
|
Awesome! should be added to the testsuite |
I git bisected it to 688f5c3
|
I added an diff --git a/hashtable.c b/hashtable.c
index 2cc4e550..eb40ac4a 100644
--- a/hashtable.c
+++ b/hashtable.c
@@ -85,6 +85,7 @@ void *hashtable_find(struct hashtable *tbl, int64 key, void *data_when_new)
if (key64 ? key == 0 : (int32)key == 0) {
rprintf(FERROR, "Internal hashtable error: illegal key supplied!\n");
+ abort();
exit_cleanup(RERR_MESSAGEIO);
}
The backtrace:
|
#697 for the same issue. |
Alright, I found why this happens. #define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */
#define FLAG_GOT_DIR_FLIST (1<<5)/* sender/receiver/generator - dir_flist only */ When the This fixes it: diff --git a/rsync.h b/rsync.h
index 9be1297b..479ac484 100644
--- a/rsync.h
+++ b/rsync.h
@@ -84,7 +84,6 @@
#define FLAG_DUPLICATE (1<<4) /* sender */
#define FLAG_MISSING_DIR (1<<4) /* generator */
#define FLAG_HLINKED (1<<5) /* receiver/generator (checked on all types) */
-#define FLAG_GOT_DIR_FLIST (1<<5)/* sender/receiver/generator - dir_flist only */
#define FLAG_HLINK_FIRST (1<<6) /* receiver/generator (w/FLAG_HLINKED) */
#define FLAG_IMPLIED_DIR (1<<6) /* sender/receiver/generator (dirs only) */
#define FLAG_HLINK_LAST (1<<7) /* receiver/generator */
@@ -93,6 +92,7 @@
#define FLAG_SKIP_GROUP (1<<10) /* receiver/generator */
#define FLAG_TIME_FAILED (1<<11)/* generator */
#define FLAG_MOD_NSEC (1<<12) /* sender/receiver/generator */
+#define FLAG_GOT_DIR_FLIST (1<<13)/* sender/receiver/generator - dir_flist only */
/* These flags are passed to functions but not stored. */
|
fixes commit 688f5c3 (Refuse a duplicate dirlist.) Fixes: RsyncProject#702 Fixes: RsyncProject#697
Good job ! |
Ensure this still working after 3.4.0 breakage RsyncProject#702
Ensure this still working after 3.4.0 breakage RsyncProject#702
Glad to learn I'm not the only one who ran into this issue. Is there a simple workaround for this? |
Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704
Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704 (cherry picked from commit 10532b7)
Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704 (cherry picked from commit 10532b7)
Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704 (cherry picked from commit 10532b7)
Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704 (cherry picked from commit 10532b7) (cherry picked from commit 3a66ced)
Ensure this still working after 3.4.0 breakage RsyncProject#702
Ensure this still working after 3.4.0 breakage #702
Are these bits sent over the wire? Or are these entirely internal to a given process (or family of processes on a single machine)? Thanks |
Thank for the fix and thank you for the quick 3.4.1 release. |
[ commit 10532b77dcbf95eec84c2c6b07f4680492cc7615 ] Fixes the following CVEs: - CVE-2024-12084 - CVE-2024-12085 - CVE-2024-12086 - CVE-2024-12087 - CVE-2024-12088 - CVE-2024-12747 Also backport fixes for a regression and a use-after-free. ref: https://github.com/RsyncProject/rsync/blob/master/NEWS.md#news-for-rsync-340-15-jan-2025 ref: RsyncProject/rsync#702 ref: RsyncProject/rsync#704
Consider the following rsync -aH:
bob# rsync -aH bob:/opt/src/git-doc .
ABORTING due to invalid path from sender: git-doc/.vale/vale.tmpl
rsync: connection unexpectedly closed (322182 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(232) [receiver=3.4.0]
rsync error: requested action not supported (code 4) at flist.c(2693) [generator=3.4.0]
rsync: [generator] write error: Broken pipe (32)
bob#
Now consider this:
bob# rsync -a bob:/opt/src/git-doc .
bob#
3.4.0 has broken preserve hard links.
The text was updated successfully, but these errors were encountered: