Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ntpd-rs for openSUSE:Factory checked 
in at 2025-09-10 17:30:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ntpd-rs (Old)
 and      /work/SRC/openSUSE:Factory/.ntpd-rs.new.1977 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ntpd-rs"

Wed Sep 10 17:30:19 2025 rev:11 rq:1303521 version:1.6.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/ntpd-rs/ntpd-rs.changes  2025-07-22 
12:20:08.579741284 +0200
+++ /work/SRC/openSUSE:Factory/.ntpd-rs.new.1977/ntpd-rs.changes        
2025-09-10 17:30:32.338283134 +0200
@@ -1,0 +2,7 @@
+Sun Sep  7 19:40:16 UTC 2025 - Martin Hauke <[email protected]>
+
+- Update to version 1.6.2
+  * Fixed bug that could cause a message to pingpong between two
+    servers indefinitely.
+
+-------------------------------------------------------------------

Old:
----
  ntpd-rs-1.6.1.tar.gz

New:
----
  ntpd-rs-1.6.2.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ntpd-rs.spec ++++++
--- /var/tmp/diff_new_pack.RCc68s/_old  2025-09-10 17:30:33.938350417 +0200
+++ /var/tmp/diff_new_pack.RCc68s/_new  2025-09-10 17:30:33.938350417 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ntpd-rs
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 # Copyright (c) 2024-2025, Martin Hauke <[email protected]>
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %define services ntpd-rs.service ntpd-rs-metrics.service
 Name:           ntpd-rs
-Version:        1.6.1
+Version:        1.6.2
 Release:        0
 Summary:        Full-featured implementation of NTP with NTS support
 License:        Apache-2.0 OR MIT

++++++ ntpd-rs-1.6.1.tar.gz -> ntpd-rs-1.6.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/.github/workflows/checks.yaml 
new/ntpd-rs-1.6.2/.github/workflows/checks.yaml
--- old/ntpd-rs-1.6.1/.github/workflows/checks.yaml     2025-07-16 
09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/.github/workflows/checks.yaml     2025-08-29 
15:38:06.000000000 +0200
@@ -187,6 +187,7 @@
 
   clippy:
     name: Clippy
+    if: ${{ false }}
     strategy:
       matrix:
         include:
@@ -292,7 +293,7 @@
           toolchain: nightly
           components: llvm-tools-preview
       - name: Install cargo fuzz & rustfilt
-        uses: taiki-e/install-action@56ab7930c591507f833cbaed864d201386d518a8
+        uses: taiki-e/install-action@6064345e6658255e90e9500fdf9a06ab77e6909c
         with:
           tool: cargo-fuzz,rustfilt
       - name: Run `cargo fuzz`
@@ -301,12 +302,12 @@
           # prevents `cargo fuzz coverage` from rebuilding everything
           RUSTFLAGS: "-C instrument-coverage"
         run: |
-          cargo fuzz run ${{matrix.features}} ${{matrix.fuzz_target}} 
${{matrix.corpus}} -- -max_total_time=10
+          cargo fuzz run --target $(rustc --print host-tuple) 
${{matrix.features}} ${{matrix.fuzz_target}} ${{matrix.corpus}} -- 
-max_total_time=10
       - name: Fuzz codecov
         run: |
-          cargo fuzz coverage ${{matrix.features}} ${{matrix.fuzz_target}} 
${{matrix.corpus}}
+          cargo fuzz coverage --target $(rustc --print host-tuple) 
${{matrix.features}} ${{matrix.fuzz_target}} ${{matrix.corpus}}
           $(rustc --print sysroot)/lib/rustlib/$(rustc --print 
host-tuple)/bin/llvm-cov export -Xdemangler=rustfilt \
-              target/$(rustc --print host-tuple)/coverage/$(rustc --print 
host-tuple)/release/${{matrix.fuzz_target}} \
+              target/x86_64-unknown-linux-musl/coverage/$(rustc --print 
host-tuple)/release/${{matrix.fuzz_target}} \
               
-instr-profile=fuzz/coverage/${{matrix.fuzz_target}}/coverage.profdata \
               --format=lcov \
               -ignore-filename-regex="\.cargo|\.rustup" > lcov.info
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/CHANGELOG.md 
new/ntpd-rs-1.6.2/CHANGELOG.md
--- old/ntpd-rs-1.6.1/CHANGELOG.md      2025-07-16 09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/CHANGELOG.md      2025-08-29 15:38:06.000000000 +0200
@@ -1,5 +1,10 @@
 # Changelog
 
+## [1.6.2] - 2025-08-29
+
+### Fixed
+- Fixed bug that could cause a message to pingpong between two servers 
indefinitely.
+
 ## [1.6.1] - 2025-07-16
 
 ### Fixed
@@ -306,6 +311,7 @@
 - Fixed a bug in peer dispersion calculation which resulted in overly
   pessimistic dispersion estimates.
 
+[1.6.2]: https://github.com/pendulum-project/ntpd-rs/compare/v1.6.1...v1.6.2
 [1.6.1]: https://github.com/pendulum-project/ntpd-rs/compare/v1.6.0...v1.6.1
 [1.6.0]: https://github.com/pendulum-project/ntpd-rs/compare/v1.5.0...v1.6.0
 [1.5.0]: https://github.com/pendulum-project/ntpd-rs/compare/v1.4.0...v1.5.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/Cargo.lock new/ntpd-rs-1.6.2/Cargo.lock
--- old/ntpd-rs-1.6.1/Cargo.lock        2025-07-16 09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/Cargo.lock        2025-08-29 15:38:06.000000000 +0200
@@ -573,7 +573,7 @@
 
 [[package]]
 name = "ntp-proto"
-version = "1.6.1"
+version = "1.6.2"
 dependencies = [
  "aead",
  "aes-siv",
@@ -590,7 +590,7 @@
 
 [[package]]
 name = "ntpd"
-version = "1.6.1"
+version = "1.6.2"
 dependencies = [
  "async-trait",
  "clock-steering",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/Cargo.toml new/ntpd-rs-1.6.2/Cargo.toml
--- old/ntpd-rs-1.6.1/Cargo.toml        2025-07-16 09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/Cargo.toml        2025-08-29 15:38:06.000000000 +0200
@@ -11,7 +11,7 @@
 
 # Global settings for our crates
 [workspace.package]
-version = "1.6.1"
+version = "1.6.2"
 edition = "2021"
 license = "Apache-2.0 OR MIT"
 repository = "https://github.com/pendulum-project/ntpd-rs";
@@ -60,4 +60,4 @@
 
 # our own crates used as dependencies, same version as the workspace version
 # NOTE: keep this part at the bottom of the file, do not change this line
-ntp-proto = { version = "1.6.1", path = "./ntp-proto", default-features = 
false, features = ["__internal-api"] }
+ntp-proto = { version = "1.6.2", path = "./ntp-proto", default-features = 
false, features = ["__internal-api"] }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/Cross.toml new/ntpd-rs-1.6.2/Cross.toml
--- old/ntpd-rs-1.6.1/Cross.toml        2025-07-16 09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/Cross.toml        2025-08-29 15:38:06.000000000 +0200
@@ -3,8 +3,11 @@
 
 [target.armv7-unknown-linux-gnueabihf]
 image = "ghcr.io/cross-rs/armv7-unknown-linux-gnueabihf:main"
+#pre-build = [
+#    "cd /usr/local/bin && curl --proto '=https' --tlsv1.2 -LsSf 
https://github.com/cargo-bins/cargo-quickinstall/releases/download/bindgen-cli-0.71.1/bindgen-cli-0.71.1-x86_64-unknown-linux-gnu.tar.gz
 | tar -zxf -"
+#]
 pre-build = [
-    "cd /usr/local/bin && curl --proto '=https' --tlsv1.2 -LsSf 
https://github.com/cargo-bins/cargo-quickinstall/releases/download/bindgen-cli-0.71.1/bindgen-cli-0.71.1-x86_64-unknown-linux-gnu.tar.gz
 | tar -zxf -"
+    "apt install xz-utils && curl --proto '=https' --tlsv1.2 -LsSf 
https://github.com/rust-lang/rust-bindgen/releases/download/v0.71.1/bindgen-cli-installer.sh
 | sh && cp -r /root/.cargo/bin/* /usr/local/bin/"
 ]
 
 [target.aarch64-unknown-linux-gnu]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/man/ntp-ctl.8.md 
new/ntpd-rs-1.6.2/docs/man/ntp-ctl.8.md
--- old/ntpd-rs-1.6.1/docs/man/ntp-ctl.8.md     2025-07-16 09:24:23.000000000 
+0200
+++ new/ntpd-rs-1.6.2/docs/man/ntp-ctl.8.md     2025-08-29 15:38:06.000000000 
+0200
@@ -1,5 +1,5 @@
 <!-- ---
-title: NTP-CTL(8) ntpd-rs 1.6.1 | ntpd-rs
+title: NTP-CTL(8) ntpd-rs 1.6.2 | ntpd-rs
 --- -->
 
 # NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/man/ntp-daemon.8.md 
new/ntpd-rs-1.6.2/docs/man/ntp-daemon.8.md
--- old/ntpd-rs-1.6.1/docs/man/ntp-daemon.8.md  2025-07-16 09:24:23.000000000 
+0200
+++ new/ntpd-rs-1.6.2/docs/man/ntp-daemon.8.md  2025-08-29 15:38:06.000000000 
+0200
@@ -1,5 +1,5 @@
 <!-- ---
-title: NTP-DAEMON(8) ntpd-rs 1.6.1 | ntpd-rs
+title: NTP-DAEMON(8) ntpd-rs 1.6.2 | ntpd-rs
 --- -->
 
 # NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/man/ntp-metrics-exporter.8.md 
new/ntpd-rs-1.6.2/docs/man/ntp-metrics-exporter.8.md
--- old/ntpd-rs-1.6.1/docs/man/ntp-metrics-exporter.8.md        2025-07-16 
09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/docs/man/ntp-metrics-exporter.8.md        2025-08-29 
15:38:06.000000000 +0200
@@ -1,5 +1,5 @@
 <!-- ---
-title: NTP-METRICS-EXPORTER(8) ntpd-rs 1.6.1 | ntpd-rs
+title: NTP-METRICS-EXPORTER(8) ntpd-rs 1.6.2 | ntpd-rs
 --- -->
 
 # NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/man/ntp.toml.5.md 
new/ntpd-rs-1.6.2/docs/man/ntp.toml.5.md
--- old/ntpd-rs-1.6.1/docs/man/ntp.toml.5.md    2025-07-16 09:24:23.000000000 
+0200
+++ new/ntpd-rs-1.6.2/docs/man/ntp.toml.5.md    2025-08-29 15:38:06.000000000 
+0200
@@ -1,5 +1,5 @@
 <!-- ---
-title: NTP.TOML(5) ntpd-rs 1.6.1 | ntpd-rs
+title: NTP.TOML(5) ntpd-rs 1.6.2 | ntpd-rs
 --- -->
 
 # NAME
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-ctl.8 
new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-ctl.8
--- old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-ctl.8    2025-07-16 
09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-ctl.8    2025-08-29 
15:38:06.000000000 +0200
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "NTP-CTL" "8" "" "ntpd-rs 1.6.1" "ntpd-rs"
+.TH "NTP-CTL" "8" "" "ntpd-rs 1.6.2" "ntpd-rs"
 .hy
 .SH NAME
 .PP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-daemon.8 
new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-daemon.8
--- old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-daemon.8 2025-07-16 
09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-daemon.8 2025-08-29 
15:38:06.000000000 +0200
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "NTP-DAEMON" "8" "" "ntpd-rs 1.6.1" "ntpd-rs"
+.TH "NTP-DAEMON" "8" "" "ntpd-rs 1.6.2" "ntpd-rs"
 .hy
 .SH NAME
 .PP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-metrics-exporter.8 
new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-metrics-exporter.8
--- old/ntpd-rs-1.6.1/docs/precompiled/man/ntp-metrics-exporter.8       
2025-07-16 09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/docs/precompiled/man/ntp-metrics-exporter.8       
2025-08-29 15:38:06.000000000 +0200
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "NTP-METRICS-EXPORTER" "8" "" "ntpd-rs 1.6.1" "ntpd-rs"
+.TH "NTP-METRICS-EXPORTER" "8" "" "ntpd-rs 1.6.2" "ntpd-rs"
 .hy
 .SH NAME
 .PP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/docs/precompiled/man/ntp.toml.5 
new/ntpd-rs-1.6.2/docs/precompiled/man/ntp.toml.5
--- old/ntpd-rs-1.6.1/docs/precompiled/man/ntp.toml.5   2025-07-16 
09:24:23.000000000 +0200
+++ new/ntpd-rs-1.6.2/docs/precompiled/man/ntp.toml.5   2025-08-29 
15:38:06.000000000 +0200
@@ -14,7 +14,7 @@
 . ftr VB CB
 . ftr VBI CBI
 .\}
-.TH "NTP.TOML" "5" "" "ntpd-rs 1.6.1" "ntpd-rs"
+.TH "NTP.TOML" "5" "" "ntpd-rs 1.6.2" "ntpd-rs"
 .hy
 .SH NAME
 .PP
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ntpd-rs-1.6.1/ntp-proto/src/server.rs 
new/ntpd-rs-1.6.2/ntp-proto/src/server.rs
--- old/ntpd-rs-1.6.1/ntp-proto/src/server.rs   2025-07-16 09:24:23.000000000 
+0200
+++ new/ntpd-rs-1.6.2/ntp-proto/src/server.rs   2025-08-29 15:38:06.000000000 
+0200
@@ -188,7 +188,18 @@
 
         // Try and parse the message
         let (packet, cookie) = match NtpPacket::deserialize(message, 
self.keyset.as_ref()) {
-            Ok(packet) => packet,
+            Ok((packet, cookie)) => match packet.mode() {
+                crate::NtpAssociationMode::Client => (packet, cookie),
+                _ => {
+                    stats_handler.register(
+                        fallback_message_version(message),
+                        false,
+                        ServerReason::ParseError,
+                        ServerResponse::Ignore,
+                    );
+                    return ServerAction::Ignore;
+                }
+            },
             Err(PacketParsingError::DecryptError(packet)) => {
                 // Don't care about decryption errors when denying anyway
                 if action != ServerResponse::Deny {
@@ -909,6 +920,61 @@
     }
 
     #[test]
+    fn test_server_ignores_non_request() {
+        let config = ServerConfig {
+            denylist: FilterList {
+                filter: vec![],
+                action: FilterAction::Deny,
+            },
+            allowlist: FilterList {
+                filter: vec!["0.0.0.0/0".parse().unwrap()],
+                action: FilterAction::Ignore,
+            },
+            rate_limiting_cutoff: Duration::from_millis(100),
+            rate_limiting_cache_size: 0,
+            require_nts: None,
+            accepted_versions: vec![NtpVersion::V4],
+        };
+        let clock = TestClock {
+            cur: NtpTimestamp::from_fixed_int(200),
+        };
+        let mut stats = TestStatHandler::default();
+
+        let mut server = Server::new(
+            config,
+            clock,
+            SystemSnapshot::default(),
+            KeySetProvider::new(1).get(),
+        );
+
+        let (packet, _) = 
NtpPacket::poll_message(PollIntervalLimits::default().min);
+        let mut serialized = serialize_packet_unencrypted(&packet);
+
+        for version in 0..8 {
+            for mode in 0..8 {
+                if mode == 3 {
+                    // Client mode should be able to get responses
+                    continue;
+                }
+
+                serialized[0] = (serialized[0] & 0xC0) | (version << 3) | mode;
+
+                let mut buf = [0; 48];
+                let response = server.handle(
+                    "127.0.0.1".parse().unwrap(),
+                    NtpTimestamp::from_fixed_int(100),
+                    &serialized,
+                    &mut buf,
+                    &mut stats,
+                );
+                stats.last_register.take();
+
+                assert!(matches!(response, ServerAction::Ignore));
+            }
+        }
+    }
+
+    #[test]
     fn test_server_corrupted() {
         let config = ServerConfig {
             denylist: FilterList {

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/ntpd-rs/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.ntpd-rs.new.1977/vendor.tar.zst differ: char 7, 
line 1

Reply via email to