Hello community, here is the log from the commit of package chrony for openSUSE:Factory checked in at 2019-03-13 09:06:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chrony (Old) and /work/SRC/openSUSE:Factory/.chrony.new.28833 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chrony" Wed Mar 13 09:06:56 2019 rev:18 rq:682198 version:3.4 Changes: -------- --- /work/SRC/openSUSE:Factory/chrony/chrony.changes 2018-12-27 00:25:48.403838980 +0100 +++ /work/SRC/openSUSE:Factory/.chrony.new.28833/chrony.changes 2019-03-13 09:06:57.503437964 +0100 @@ -1,0 +2,5 @@ +Wed Mar 6 13:40:04 UTC 2019 - Martin Pluskal <mplus...@suse.com> + +- Update testsuite to version 58c5e8b + +------------------------------------------------------------------- Old: ---- clknetsim-8b48422.tar.gz New: ---- clknetsim-58c5e8b.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chrony.spec ++++++ --- /var/tmp/diff_new_pack.bdzwsC/_old 2019-03-13 09:06:58.167437897 +0100 +++ /var/tmp/diff_new_pack.bdzwsC/_new 2019-03-13 09:06:58.167437897 +0100 @@ -1,7 +1,7 @@ # # spec file for package chrony # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ %define vendorzone opensuse. -%global clknetsim_ver 8b48422 +%global clknetsim_ver 58c5e8b #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates ++++++ clknetsim-8b48422.tar.gz -> clknetsim-58c5e8b.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clknetsim-8b484227848a0b9a71caecbf3e19166f1ee9b0a6/client.c new/clknetsim-58c5e8bd6d041ff30e9c7dbe45162a73e99f3d24/client.c --- old/clknetsim-8b484227848a0b9a71caecbf3e19166f1ee9b0a6/client.c 2018-09-26 17:01:57.000000000 +0200 +++ new/clknetsim-58c5e8bd6d041ff30e9c7dbe45162a73e99f3d24/client.c 2019-01-28 10:35:17.000000000 +0100 @@ -1550,7 +1550,7 @@ } else make_request(REQ_RECV, NULL, 0, &rep, sizeof (rep)); - if (rep.len == 0) { + if (rep.len == 0 && rep.from == -1) { errno = EWOULDBLOCK; return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/clknetsim-8b484227848a0b9a71caecbf3e19166f1ee9b0a6/client_fuzz.c new/clknetsim-58c5e8bd6d041ff30e9c7dbe45162a73e99f3d24/client_fuzz.c --- old/clknetsim-8b484227848a0b9a71caecbf3e19166f1ee9b0a6/client_fuzz.c 2018-09-26 17:01:57.000000000 +0200 +++ new/clknetsim-58c5e8bd6d041ff30e9c7dbe45162a73e99f3d24/client_fuzz.c 2019-01-28 10:35:17.000000000 +0100 @@ -29,8 +29,14 @@ FUZZ_MODE_NONE = 4, }; +#define FUZZ_FLAG_TIMEOUT 1024 + +#define MAX_FUZZ_PORTS 16 + static int fuzz_mode; -static int fuzz_port; +static int fuzz_ports[MAX_FUZZ_PORTS]; +static int fuzz_port_index, fuzz_ports_n; +static int fuzz_timeout; static double fuzz_start; static int fuzz_init(void) { @@ -42,6 +48,11 @@ fuzz_mode = atoi(env); + if (fuzz_mode & FUZZ_FLAG_TIMEOUT) { + fuzz_timeout = 1; + fuzz_mode &= ~FUZZ_FLAG_TIMEOUT; + } + if (fuzz_mode == FUZZ_MODE_DISABLED) return 0; @@ -51,12 +62,21 @@ } env = getenv("CLKNETSIM_FUZZ_PORT"); - if (!env) { - fprintf(stderr, "clknetsim: CLKNETSIM_FUZZ_PORT variable not set.\n"); - exit(1); + + for (fuzz_ports_n = 0; env && fuzz_ports_n < MAX_FUZZ_PORTS; fuzz_ports_n++) { + fuzz_ports[fuzz_ports_n] = atoi(env); + if (!fuzz_ports[fuzz_ports_n]) + break; + env = strchr(env, ','); + if (env) + env++; } - fuzz_port = atoi(env); + if (!fuzz_ports_n) { + fprintf(stderr, "clknetsim: CLKNETSIM_FUZZ_PORT variable not set or invalid.\n"); + exit(1); + } + fuzz_port_index = 0; env = getenv("CLKNETSIM_FUZZ_START"); fuzz_start = env ? atof(env) : 0.1; @@ -64,7 +84,24 @@ return 1; } -static int fuzz_read_packet(char *data, int maxlen) { +static int fuzz_is_fuzz_port(int port) { + int i; + + for (i = 0; i < fuzz_ports_n; i++) + if (fuzz_ports[i] == port) + return 1; + return 0; +} + +static int fuzz_get_fuzz_port(void) { + return fuzz_ports[fuzz_port_index]; +} + +static void fuzz_switch_fuzz_port(void) { + fuzz_port_index = (fuzz_port_index + 1) % fuzz_ports_n; +} + +static int fuzz_read_packet(char *data, int maxlen, int *rlen) { int len; uint16_t slen; @@ -78,7 +115,9 @@ len = maxlen; } - return fread(data, 1, len, stdin); + *rlen = fread(data, 1, len, stdin); + + return !len || rlen; } static void fuzz_write_packet(const char *data, int len) { @@ -98,6 +137,7 @@ static int sent = 0; static int dst_port = 0; static int packet_len = 0; + static int valid_packet = 0; static char packet[MAX_PACKET_SIZE]; if (reply) @@ -115,11 +155,15 @@ return; } - if (!packet_len && (!received || fuzz_mode != FUZZ_MODE_ONESHOT)) - packet_len = fuzz_read_packet(packet, sizeof (packet)); + if (!valid_packet && (!received || fuzz_mode != FUZZ_MODE_ONESHOT)) + valid_packet = fuzz_read_packet(packet, sizeof (packet), &packet_len); - if (!packet_len) { + if (!valid_packet) { reply->select.ret = REPLY_SELECT_TERMINATE; + } else if (!packet_len && fuzz_timeout) { + network_time += request->select.timeout; + reply->select.ret = REPLY_SELECT_TIMEOUT; + valid_packet = 0; } else { if (fuzz_mode == FUZZ_MODE_REPLY) { if (sent > received) { @@ -144,35 +188,37 @@ } reply->select.subnet = 0; - reply->select.dst_port = dst_port ? dst_port : fuzz_port; + reply->select.dst_port = dst_port ? dst_port : fuzz_get_fuzz_port(); reply->select.time.real_time = network_time; reply->select.time.monotonic_time = network_time; reply->select.time.network_time = network_time; break; case REQ_SEND: - if (request->send.to != 1) + if (request->send.to != 1 && request->send.to != -1) break; if (fuzz_mode == FUZZ_MODE_REPLY) { - if (request->send.dst_port != fuzz_port) + if (!fuzz_is_fuzz_port(request->send.dst_port)) break; dst_port = request->send.src_port; - } else if (request->send.src_port != fuzz_port) + } else if (!fuzz_is_fuzz_port(request->send.src_port)) break; fuzz_write_packet(request->send.data, request->send.len); sent++; break; case REQ_RECV: - network_time += 1e-1; + network_time += 1e-5; reply->recv.subnet = 0; - reply->recv.from = 1; - reply->recv.src_port = fuzz_port; - reply->recv.dst_port = dst_port ? dst_port : fuzz_port; + reply->recv.from = valid_packet ? 1 : -1; + reply->recv.src_port = fuzz_get_fuzz_port(); + reply->recv.dst_port = dst_port ? dst_port : fuzz_get_fuzz_port(); memcpy(reply->recv.data, packet, packet_len); reply->recv.len = packet_len; received++; + valid_packet = 0; packet_len = 0; + fuzz_switch_fuzz_port(); break; case REQ_SETTIME: network_time = request->settime.time;