Hello community, here is the log from the commit of package wicked for openSUSE:Factory checked in at 2020-02-29 21:23:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wicked (Old) and /work/SRC/openSUSE:Factory/.wicked.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wicked" Sat Feb 29 21:23:16 2020 rev:80 rq:779668 version:0.6.62 Changes: -------- --- /work/SRC/openSUSE:Factory/wicked/wicked.changes 2019-12-17 13:29:37.411420624 +0100 +++ /work/SRC/openSUSE:Factory/.wicked.new.26092/wicked.changes 2020-02-29 21:23:23.818383806 +0100 @@ -1,0 +2,15 @@ +Wed Feb 26 21:00:16 UTC 2020 - [email protected] + +- version 0.6.62 +- dhcp4: discard lease on client-id mismatch (CVE-2020-7217,bsc#1160906) +- dhcp4: free lease on response without message type (CVE-2020-7216,bsc#1160905) +- dhcp6: don't add free'd IA to ia_pd_list on T1>T2 (CVE-2019-18903,bsc#1160904) +- dhcp6: fix use-after-free on option parsing failure (CVE-2019-18902,bsc#1160903) +- utils: don't reject NULL var array names/keys breaking wicked duid dump +- routes: schema fix to avoid not applying rto_min incl. new time format (bsc#1160939) +- systemd: order start wicked after network-pre.target and openvswitch.service start +- packaging: use pkgconfig(libsystemd) instead of systemd-devel +- misc bug fixes by Malte Kraus including undefined behaviour, memory access alignment +- corrections, use-after-free, missed initialization and format errors + +------------------------------------------------------------------- Old: ---- wicked-0.6.61.tar.bz2 New: ---- wicked-0.6.62.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wicked.spec ++++++ --- /var/tmp/diff_new_pack.QN09Gz/_old 2020-02-29 21:23:24.598385350 +0100 +++ /var/tmp/diff_new_pack.QN09Gz/_new 2020-02-29 21:23:24.598385350 +0100 @@ -1,7 +1,7 @@ # # spec file for package wicked # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 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 @@ -18,12 +18,12 @@ %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.61 +Version: 0.6.62 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure -License: GPL-2.0-only +License: GPL-2.0-or-later Group: System/Management -Url: https://github.com/openSUSE/wicked +URL: https://github.com/openSUSE/wicked Source0: %{name}-%{version}.tar.bz2 Source1: wicked-rpmlintrc # @@ -39,7 +39,7 @@ BuildRequires: automake BuildRequires: libtool BuildRequires: make -Provides: libwicked-0_6_61 = %{version} +Provides: libwicked-0_6_62 = %{version} Obsoletes: libwicked-0-6 <= %{version} %if 0%{?suse_version} >= 1500 @@ -84,8 +84,8 @@ %endif %if %{with systemd} -BuildRequires: systemd-devel BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libsystemd) %{?systemd_requires} %if 0%{?suse_version:1} Requires(pre): %fillup_prereq @@ -155,7 +155,7 @@ Group: Development/Libraries/C and C++ Requires: dbus-1-devel Requires: libnl3-devel -Requires: libwicked-0_6_61 = %{version} +Requires: libwicked-0_6_62 = %{version} %description devel Wicked is a network configuration infrastructure incorporating a number ++++++ wicked-0.6.61.tar.bz2 -> wicked-0.6.62.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/ChangeLog new/wicked-0.6.62/ChangeLog --- old/wicked-0.6.61/ChangeLog 2019-12-11 12:06:56.000000000 +0100 +++ new/wicked-0.6.62/ChangeLog 2020-02-26 21:49:21.000000000 +0100 @@ -1,3 +1,244 @@ +commit d539bba071c5837bec94a0cdf1c44060ad643e1e +Author: Marius Tomaschewski <[email protected]> +Date: Wed Feb 26 17:16:08 2020 +0100 + + version 0.6.62 + +commit 082b635cd1ae7c893e91d221d24dd36817ab0350 +Author: Marius Tomaschewski <[email protected]> +Date: Wed Feb 26 17:11:35 2020 +0100 + + spec: adjust rpm spec file licenses and url tags + +commit 0699d59048f2e67d6e29f5cd8b017903d061e216 +Merge: f62ab041 e94fb47a +Author: Marius Tomaschewski <[email protected]> +Date: Wed Feb 26 12:18:58 2020 +0100 + + Merge pull request #828 from rtorrero/security-1 + + security: memory usage errors in DHCPv4 and DHCPv6 handling + +commit f62ab04162fd3e30b96fac0c73fde0bcc09c5fc5 +Merge: 4ef7c7b7 c8d3f932 +Author: Marius Tomaschewski <[email protected]> +Date: Tue Feb 25 15:04:25 2020 +0100 + + Merge pull request #825 from rtorrero/bug-1160939_rto-min-fix + + schema: change rto_min key to avoid not applying it (bsc#1160939) + +commit c8d3f932b23a89e50ea69ee9b7584342711639fe +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Mon Feb 24 11:01:29 2020 +0000 + + ifcfg: consider new iproute time format for rtt,rttvar,rto_min + +commit e94fb47a5e578842bb305a8c232e3df718e8794d +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Fri Jan 31 10:55:24 2020 +0000 + + dhcp4: discard lease on client-id mismatch (CVE-2020-7217,bsc#1160906) + +commit 127876d452e44045f6470c1e44b1c95b48437f81 +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Fri Jan 31 10:40:00 2020 +0000 + + dhcp6: don't add free'd IA to ia_pd_list on T1>T2 (CVE-2019-18903,bsc#1160904) + +commit b5d618de07819d60ace7b2741f62d83d011be3f8 +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Wed Jan 22 12:19:12 2020 +0000 + + dhcp4: free lease on response without message type (CVE-2020-7216,bsc#1160905) + +commit 9c1a64fdb77772169f7b28550978534c125b7e40 +Author: Marius Tomaschewski <[email protected]> +Date: Wed Jan 22 12:42:09 2020 +0100 + + dhcp6: fix use-after-free on option parsing failure (CVE-2019-18902,bsc#1160903) + + ni_dhcp6_fsm_parse_client_options() frees msg->lease without clearing + it to NULL, leading to UAF. + +commit 4ef7c7b75a9e53e66a46e7c6475de3749222d818 +Merge: 1ee4770a e1646682 +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Mon Feb 24 11:05:18 2020 +0000 + + Merge pull request #826 from mtomaschewski/var-array-name + + utils: don't reject NULL var array names/keys + +commit 2b6b9fa4deb3f033e3748477d8004fb360a81dd6 +Author: Clemens Famulla-Conrad <[email protected]> +Date: Wed Feb 12 12:59:56 2020 +0100 + + Introduce .editorconfig file + + Convenient way to have project based editor config, see http://EditorConfig.org + + I walked through the project and tried to identify the most common used + ways for different file types. + + Following four types: + + * xml and .conf files + => 2 spaces + * manpages + => 3 spaces + * doc/html + => 1 space + * all others + => tab with 8 + +commit e164668272ebd5f9bb720c0e84ad6ea5bd94094e +Author: Marius Tomaschewski <[email protected]> +Date: Tue Feb 11 08:32:01 2020 +0100 + + utils: don't reject NULL var array names/keys + +commit 402fea7de8df803101e4e113d36c22c7b2c20d3d +Merge: 8240a4a6 d0396a32 +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Fri Feb 7 13:32:25 2020 +0000 + + Merge pull request #823 from DimStar77/master + + Packaging: BuildRequire pkgconfig(libsystemd) instead of systemd-devel + +commit 5b669932606a2bacd46c02b61b88283c8f623422 +Author: Rubén Torrero Marijnissen <[email protected]> +Date: Wed Feb 5 16:42:45 2020 +0000 + + schema: change rto_min key to avoid not applying it (bsc#1160939) + +commit 17e60f2cce44b9ad267b3aed3b17b2808b133e23 +Author: Jan Zerebecki <[email protected]> +Date: Fri Jan 31 11:32:38 2020 +0100 + + Order After network-pre on startup + + Add network-pre.target where ordering is already After + SuSEfirewall2_init.service. + + SuSEfirewall2_init.service is also missing a Before on network-pre. + After that is done in SuSEfirewall2 it can be removed here. + + Quote about network-pre from man systemd.special: + This passive target unit may be pulled in by services that want to run + before any network is set up, for example for the purpose of setting up + a firewall. All network management software orders itself after this + target, but does not pull it in. + +commit 8e7310c6637a403e9ecba64ad4af46f3963db43d +Author: Jan Zerebecki <[email protected]> +Date: Fri Jan 31 11:18:22 2020 +0100 + + Order wickedd After Open vSwitch on startup + + Otherwise these are treading on each other while bringing up interfaces + which results in failures. Ordering Open vSwitch Before network.service + isn't suficient as wickedd and wickedd-nanny may start before that. + +commit d0396a32cd2b75e1444ebe179e2c53219767104a +Author: Dominique Leuenberger <[email protected]> +Date: Fri Jan 24 15:45:15 2020 +0100 + + Packaging: BuildRequire pkgconfig(libsystemd) instead of systemd-devel + + On OBS/openSUSE this has the positive side-effect of using the -mini + flavors, meaning we can move up in fhe build queue and not be + blocked behind the 'full featured systemd package'. There is no + difference for the consumers. + +commit 98c0115e5e8b0db84752e5eb81a2b1abbae58618 +Author: Malte Kraus <[email protected]> +Date: Mon Jan 13 14:38:57 2020 +0100 + + force aligned struct accesses + +commit de2bce5efb6cd5f32a26ce8ef3adc52ebac605f6 +Author: Malte Kraus <[email protected]> +Date: Mon Jan 13 14:00:20 2020 +0100 + + ni_iaid_create_hwaddr: deal correctly with unaligned memory + +commit ebd4f30689f89ef008675102d9539332b89925de +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 16:37:18 2020 +0100 + + turn signed shifts into unsigned shifts: undefined behaviour + +commit dc449aacecdd36bc797e5d808bb24b1bf30317b1 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 14:56:00 2020 +0100 + + hostname lookup: don't use shellcmd after freeing it + + the process keeps a reference to it, so this was no uaf before. This + way it's more robust to changes in ni_process_new at least. + +commit 11866ee000cadc1c950ed7883edaf5f56187203e +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 14:54:34 2020 +0100 + + fix use-after-free in timer + +commit d0aa2afa319ff76b2f866316fafe76630d1723d3 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 14:11:15 2020 +0100 + + ni_dhcp4_fsm_arp_validate: handle failure to create ARP handle + +commit e9a9520142f0aa37398fbbd4c829b6e825b71f1e +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 14:00:02 2020 +0100 + + buffer: remove 0-byte memcpy undefined behaviour + +commit 8ac6ffcc70e55b19e2ff6f5e4b748bf6a66734cc +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:50:03 2020 +0100 + + ni_rule_print: remove superfluous format argument + +commit 9b76473e0504e3ab1e4de4d3292e5cc9acbdd201 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:48:46 2020 +0100 + + process_run_info: fix check for signal termination + +commit c9ce47dbc8bca88f59d07c3078f9f414df8b97c4 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:47:16 2020 +0100 + + ni_ifworker_netif_resolve_cb: initalize cwtype variable + +commit 5d3d74458b7e1c4ae9060805994b4c270017f571 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:45:00 2020 +0100 + + __ni_objectmodel_route_nexthop_from_dict: do not print uninitalized var + +commit fed802e40cf51823890bac1cb7f7d617bd23af18 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:44:00 2020 +0100 + + ni_config_parse_addrconf_dhcp6_nodes: fix length parsing + +commit b25f199ba117d6b333c808165be979073f03f556 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:42:36 2020 +0100 + + ni_auto6_on_nduseropt_events: initialize changed variable + +commit 3aef8af62ae556ed6bf702eb085209e6dc80cf06 +Author: Malte Kraus <[email protected]> +Date: Fri Jan 10 13:41:38 2020 +0100 + + client: format hostnames correctly + commit 50bf6f6197e964203c0b96e7f49b603a2b2bf7eb Author: Marius Tomaschewski <[email protected]> Date: Wed Dec 11 10:51:50 2019 +0100 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/VERSION new/wicked-0.6.62/VERSION --- old/wicked-0.6.61/VERSION 2019-12-11 11:59:56.000000000 +0100 +++ new/wicked-0.6.62/VERSION 2020-02-26 21:44:57.000000000 +0100 @@ -1 +1 @@ -0.6.61 +0.6.62 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/client/compat.c new/wicked-0.6.62/client/compat.c --- old/wicked-0.6.61/client/compat.c 2019-12-11 11:59:56.000000000 +0100 +++ new/wicked-0.6.62/client/compat.c 2020-02-26 21:44:57.000000000 +0100 @@ -1801,7 +1801,7 @@ xml_node_new_element("features", mnode, ni_sprint_uint(rp->features)); } if (rp->rto_min > 0) { - xml_node_new_element("rto-min", mnode, ni_sprint_uint(rp->rto_min)); + xml_node_new_element("rto_min", mnode, ni_sprint_uint(rp->rto_min)); } if (rp->initrwnd > 0) { xml_node_new_element("initrwnd", mnode, ni_sprint_uint(rp->initrwnd)); @@ -3071,4 +3071,3 @@ return count - array->count; } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/client/main.c new/wicked-0.6.62/client/main.c --- old/wicked-0.6.61/client/main.c 2019-12-11 11:59:56.000000000 +0100 +++ new/wicked-0.6.62/client/main.c 2020-02-26 21:42:56.000000000 +0100 @@ -1488,6 +1488,7 @@ if (opt_dbus_error_file) { write_dbus_error(opt_dbus_error_file, NI_DBUS_ERROR_UNRESOLVABLE_HOSTNAME, + "%s", hostname); opt_dbus_error_file = NULL; } @@ -1509,6 +1510,7 @@ if (opt_dbus_error_file) { write_dbus_error(opt_dbus_error_file, NI_DBUS_ERROR_UNREACHABLE_ADDRESS, + "%s", hostname); opt_dbus_error_file = NULL; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/client/suse/compat-suse.c new/wicked-0.6.62/client/suse/compat-suse.c --- old/wicked-0.6.61/client/suse/compat-suse.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/client/suse/compat-suse.c 2020-02-26 21:44:57.000000000 +0100 @@ -602,6 +602,43 @@ } int +ni_suse_route_parse_time(const char *input, unsigned int *result) +{ + static const ni_intmap_t time_map[] = { + { "msecs", 0 }, + { "msec", 0 }, + { "ms", 0 }, + { "secs", 1000 }, + { "sec", 1000 }, + { "s", 1000 }, + { NULL, 0 } + }; + unsigned int factor = 0; + unsigned long value; + char *end = NULL; + + if (!result || !input || !*input || *input == '-') { + errno = EINVAL; + return -1; + } + + errno = 0; + value = strtoul(input, (char **) &end, 10); + if (errno) + return -1; + if (*end && ni_parse_uint_mapped(end, time_map, &factor) < 0) { + errno = EINVAL; + return -1; + } + + if (factor) + value *= factor; + + *result = value; + return 0; +} + +int __ni_suse_route_parse_opts(ni_route_t *rp, ni_string_array_t *opts, unsigned int *pos, const char *ifname, const char *filename, unsigned int line) @@ -701,7 +738,7 @@ return -1; val = ni_string_array_at(opts, (*pos)++); } - if (ni_parse_uint(val, &tmp, 10) < 0) + if (ni_suse_route_parse_time(val, &tmp) < 0) return -1; rp->rtt = tmp; } else @@ -712,7 +749,7 @@ return -1; val = ni_string_array_at(opts, (*pos)++); } - if (ni_parse_uint(val, &tmp, 10) < 0) + if (ni_suse_route_parse_time(val, &tmp) < 0) return -1; rp->rttvar = tmp; } else @@ -802,7 +839,7 @@ return -1; val = ni_string_array_at(opts, (*pos)++); } - if (ni_parse_uint(val, &tmp, 10) < 0) + if (ni_suse_route_parse_time(val, &tmp) < 0) return -1; rp->rto_min = tmp; } else diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/configure new/wicked-0.6.62/configure --- old/wicked-0.6.61/configure 2019-12-11 12:05:59.000000000 +0100 +++ new/wicked-0.6.62/configure 2020-02-26 21:47:14.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for wicked 0.6.61. +# Generated by GNU Autoconf 2.69 for wicked 0.6.62. # # Report bugs to <http://bugs.opensuse.org>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='wicked' PACKAGE_TARNAME='wicked' -PACKAGE_VERSION='0.6.61' -PACKAGE_STRING='wicked 0.6.61' +PACKAGE_VERSION='0.6.62' +PACKAGE_STRING='wicked 0.6.62' PACKAGE_BUGREPORT='http://bugs.opensuse.org' PACKAGE_URL='https://github.com/openSUSE/wicked' @@ -1396,7 +1396,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures wicked 0.6.61 to adapt to many kinds of systems. +\`configure' configures wicked 0.6.62 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1466,7 +1466,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of wicked 0.6.61:";; + short | recursive ) echo "Configuration of wicked 0.6.62:";; esac cat <<\_ACEOF @@ -1637,7 +1637,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -wicked configure 0.6.61 +wicked configure 0.6.62 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2236,7 +2236,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by wicked $as_me 0.6.61, which was +It was created by wicked $as_me 0.6.62, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3099,7 +3099,7 @@ # Define the identity of the package. PACKAGE='wicked' - VERSION='0.6.61' + VERSION='0.6.62' cat >>confdefs.h <<_ACEOF @@ -15810,7 +15810,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by wicked $as_me 0.6.61, which was +This file was extended by wicked $as_me 0.6.62, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -15877,7 +15877,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -wicked config.status 0.6.61 +wicked config.status 0.6.62 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/etc/systemd/wickedd-auto4.service.in new/wicked-0.6.62/etc/systemd/wickedd-auto4.service.in --- old/wicked-0.6.61/etc/systemd/wickedd-auto4.service.in 2019-12-11 11:58:07.000000000 +0100 +++ new/wicked-0.6.62/etc/systemd/wickedd-auto4.service.in 2020-02-26 21:44:57.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=wicked AutoIPv4 supplicant service Requisite=dbus.service -After=local-fs.target dbus.service SuSEfirewall2_init.service +After=local-fs.target dbus.service network-pre.target SuSEfirewall2_init.service Before=wickedd.service wicked.service network.target PartOf=wickedd.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/etc/systemd/wickedd-dhcp4.service.in new/wicked-0.6.62/etc/systemd/wickedd-dhcp4.service.in --- old/wicked-0.6.61/etc/systemd/wickedd-dhcp4.service.in 2019-12-11 11:58:07.000000000 +0100 +++ new/wicked-0.6.62/etc/systemd/wickedd-dhcp4.service.in 2020-02-26 21:44:57.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=wicked DHCPv4 supplicant service Requisite=dbus.service -After=local-fs.target dbus.service SuSEfirewall2_init.service +After=local-fs.target dbus.service network-pre.target SuSEfirewall2_init.service Before=wickedd.service wicked.service network.target PartOf=wickedd.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/etc/systemd/wickedd-dhcp6.service.in new/wicked-0.6.62/etc/systemd/wickedd-dhcp6.service.in --- old/wicked-0.6.61/etc/systemd/wickedd-dhcp6.service.in 2019-12-11 11:58:07.000000000 +0100 +++ new/wicked-0.6.62/etc/systemd/wickedd-dhcp6.service.in 2020-02-26 21:44:57.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=wicked DHCPv6 supplicant service Requisite=dbus.service -After=local-fs.target dbus.service SuSEfirewall2_init.service +After=local-fs.target dbus.service network-pre.target SuSEfirewall2_init.service Before=wickedd.service wicked.service network.target PartOf=wickedd.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/etc/systemd/wickedd-nanny.service.in new/wicked-0.6.62/etc/systemd/wickedd-nanny.service.in --- old/wicked-0.6.61/etc/systemd/wickedd-nanny.service.in 2019-12-11 11:58:07.000000000 +0100 +++ new/wicked-0.6.62/etc/systemd/wickedd-nanny.service.in 2020-02-26 21:44:57.000000000 +0100 @@ -1,7 +1,7 @@ [Unit] Description=wicked network nanny service Requisite=dbus.service -After=local-fs.target dbus.service SuSEfirewall2_init.service wickedd.service +After=local-fs.target dbus.service network-pre.target SuSEfirewall2_init.service wickedd.service Before=wicked.service network.target PartOf=wickedd.service diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/etc/systemd/wickedd.service.in new/wicked-0.6.62/etc/systemd/wickedd.service.in --- old/wicked-0.6.61/etc/systemd/wickedd.service.in 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/etc/systemd/wickedd.service.in 2020-02-26 21:44:57.000000000 +0100 @@ -2,7 +2,7 @@ Description=wicked network management service daemon Requisite=dbus.service Wants=wickedd-nanny.service wickedd-dhcp6.service wickedd-dhcp4.service wickedd-auto4.service systemd-udev-settle.service -After=local-fs.target dbus.service isdn.service rdma.service SuSEfirewall2_init.service systemd-udev-settle.service +After=local-fs.target dbus.service isdn.service rdma.service network-pre.target SuSEfirewall2_init.service systemd-udev-settle.service openvswitch.service Before=wickedd-nanny.service wicked.service network.target [Service] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/schema/interface.xml new/wicked-0.6.62/schema/interface.xml --- old/wicked-0.6.61/schema/interface.xml 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/schema/interface.xml 2020-02-26 21:44:57.000000000 +0100 @@ -65,7 +65,7 @@ <hoplimit type="uint32" /> <initcwnd type="uint32" /> <features type="uint32" /> - <rto-min type="uint32" /> + <rto_min type="uint32" /> <initrwnd type="uint32" /> </metrics> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/auto6.c new/wicked-0.6.62/src/auto6.c --- old/wicked-0.6.61/src/auto6.c 2019-07-26 15:27:40.000000000 +0200 +++ new/wicked-0.6.62/src/auto6.c 2020-02-26 21:42:56.000000000 +0100 @@ -717,7 +717,7 @@ ni_addrconf_lease_t *lease; unsigned int lifetime; struct timeval now; - ni_bool_t changed; + ni_bool_t changed = FALSE; if (!dev) return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/buffer.c new/wicked-0.6.62/src/buffer.c --- old/wicked-0.6.61/src/buffer.c 2016-01-29 16:56:20.000000000 +0100 +++ new/wicked-0.6.62/src/buffer.c 2020-02-26 21:42:56.000000000 +0100 @@ -25,7 +25,8 @@ unsigned char *new_base; new_base = xmalloc(new_size); - memcpy(new_base, bp->base, bp->size); + if (bp->size) + memcpy(new_base, bp->base, bp->size); bp->base = new_base; bp->allocated = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/config.c new/wicked-0.6.62/src/config.c --- old/wicked-0.6.61/src/config.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/config.c 2020-02-26 21:42:56.000000000 +0100 @@ -1147,7 +1147,7 @@ int len; /* DUID is "opaque", but has 2 bytes type + up to 128 bytes */ - if ((len = sizeof(pref->serverid.data)) > 130) + if ((len = pref->serverid.len) > 130) len = 130; /* DUID-LL has 2+2 fixed bytes + variable length hwaddress diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dbus-objects/misc.c new/wicked-0.6.62/src/dbus-objects/misc.c --- old/wicked-0.6.61/src/dbus-objects/misc.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/dbus-objects/misc.c 2020-02-26 21:42:56.000000000 +0100 @@ -1058,7 +1058,7 @@ */ if (ni_dbus_dict_get(nhdict, "gateway")) { if (!__ni_objectmodel_dict_get_sockaddr(nhdict, "gateway", &nh->gateway)) { - ni_debug_dbus("%s: invalid route hop gateway %u", __func__, value); + ni_debug_dbus("%s: invalid route hop gateway", __func__); return FALSE; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dbus-xml.c new/wicked-0.6.62/src/dbus-xml.c --- old/wicked-0.6.61/src/dbus-xml.c 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/src/dbus-xml.c 2020-02-26 21:42:56.000000000 +0100 @@ -610,7 +610,7 @@ /* May left shift past width of value if bb >= 32, but as ret * will be FALSE assignment to result will not happen. */ - value |= 1 << bb; + value |= NI_BIT(bb); } ni_string_array_destroy(&bit_name_arr); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dhcp4/fsm.c new/wicked-0.6.62/src/dhcp4/fsm.c --- old/wicked-0.6.61/src/dhcp4/fsm.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/dhcp4/fsm.c 2020-02-26 21:44:57.000000000 +0100 @@ -153,6 +153,7 @@ */ ni_debug_dhcp("%s: ignoring packet with not matching client-id%s%s", dev->ifname, sender ? " sender " : "", sender ? sender : ""); + ni_addrconf_lease_free(lease); return -1; } @@ -1070,7 +1071,7 @@ if (dev->arp.handle == NULL) { dev->arp.handle = ni_arp_socket_open(&dev->system, ni_dhcp4_fsm_process_arp_packet, dev); - if (!dev->arp.handle->user_data) { + if (!dev->arp.handle || !dev->arp.handle->user_data) { ni_error("%s: unable to create ARP handle", dev->ifname); return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dhcp4/protocol.c new/wicked-0.6.62/src/dhcp4/protocol.c --- old/wicked-0.6.61/src/dhcp4/protocol.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/dhcp4/protocol.c 2020-02-26 21:44:57.000000000 +0100 @@ -1909,6 +1909,12 @@ } } + // We should have a msg_type by now + if (msg_type < 0) { + ni_debug_dhcp("unable to parse DHCP4 response: missing msg type"); + goto error; + } + if (options->underflow) { ni_debug_dhcp("unable to parse DHCP4 response: truncated packet"); goto error; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dhcp6/fsm.c new/wicked-0.6.62/src/dhcp6/fsm.c --- old/wicked-0.6.61/src/dhcp6/fsm.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/dhcp6/fsm.c 2020-02-26 21:44:57.000000000 +0100 @@ -1587,6 +1587,7 @@ return 0; failure: + msg->lease = NULL; ni_addrconf_lease_free(lease); return -1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/dhcp6/protocol.c new/wicked-0.6.62/src/dhcp6/protocol.c --- old/wicked-0.6.61/src/dhcp6/protocol.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/dhcp6/protocol.c 2020-02-26 21:44:57.000000000 +0100 @@ -354,7 +354,6 @@ static int ni_dhcp6_process_packet(ni_dhcp6_device_t *dev, ni_buffer_t *msgbuf, const struct in6_addr *sender) { - ni_dhcp6_packet_header_t *header; ni_dhcp6_message_t msg; int rv = -1; @@ -376,8 +375,8 @@ /* * peek header only */ - header = ni_buffer_head(msgbuf); - switch(header->type) { + uint8_t *type = ni_buffer_head(msgbuf); + switch(*type) { /* handle client response msgs */ case NI_DHCP6_ADVERTISE: case NI_DHCP6_REPLY: @@ -399,7 +398,7 @@ default: ni_debug_dhcp("%s: received %s message in state %s from %s: discarding", dev->ifname, - ni_dhcp6_message_name(header->type), + ni_dhcp6_message_name(*type), ni_dhcp6_fsm_state_name(dev->fsm.state), ni_dhcp6_address_print(&msg.sender)); break; @@ -2573,7 +2572,7 @@ ni_dhcp6_option_name(ia->type), ia->renewal_time, ia->rebind_time); /* DISCARD */ - ni_dhcp6_ia_free(ia); + goto discard; } ni_dhcp6_ia_list_append(ia_pd_list, ia); @@ -2582,6 +2581,10 @@ failure: ni_dhcp6_ia_free(ia); return -1; + +discard: + ni_dhcp6_ia_free(ia); + return 0; } static int @@ -3098,15 +3101,16 @@ int ni_dhcp6_parse_client_header(ni_dhcp6_message_t *msg, ni_buffer_t *msgbuf) { - ni_dhcp6_client_header_t * header; + ni_dhcp6_client_header_t header; if (!msgbuf || !msg) return -1; - header = ni_buffer_pull_head(msgbuf, sizeof(*header)); - if (header) { - msg->type = header->type; - msg->xid = ni_dhcp6_message_xid(header->xid); + const char *header_src = ni_buffer_pull_head(msgbuf, sizeof(header)); + if (header_src) { + memcpy(&header, header_src, sizeof(header)); + msg->type = header.type; + msg->xid = ni_dhcp6_message_xid(header.xid); return 0; } return -1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/fsm.c new/wicked-0.6.62/src/fsm.c --- old/wicked-0.6.61/src/fsm.c 2019-12-11 11:58:07.000000000 +0100 +++ new/wicked-0.6.62/src/fsm.c 2020-02-26 21:42:56.000000000 +0100 @@ -3688,7 +3688,7 @@ ni_ifworker_t *w = closure->worker; ni_ifworker_t *cw = NULL; xml_node_t *cwmeta = NULL; - ni_ifworker_type_t cwtype; + ni_ifworker_type_t cwtype = NI_IFWORKER_TYPE_NONE; unsigned int requires = 0; xml_node_t *mchild; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/iaid.c new/wicked-0.6.62/src/iaid.c --- old/wicked-0.6.61/src/iaid.c 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/src/iaid.c 2020-02-26 21:42:56.000000000 +0100 @@ -445,7 +445,6 @@ ni_bool_t ni_iaid_create_hwaddr(unsigned int *iaid, const ni_hwaddr_t *hwa) { - uint32_t *ptr; size_t off; if (!iaid || !hwa) @@ -458,8 +457,8 @@ return FALSE; off = hwa->len - sizeof(*iaid); - ptr = (uint32_t *)(hwa->data + off); - *iaid = ntohl(*ptr); + memcpy(iaid, hwa->data + off, sizeof(uint32_t)); + *iaid = ntohl(*iaid); return TRUE; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/macvlan.c new/wicked-0.6.62/src/macvlan.c --- old/wicked-0.6.61/src/macvlan.c 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/src/macvlan.c 2020-02-26 21:42:56.000000000 +0100 @@ -119,7 +119,7 @@ const char * ni_macvlan_flag_bit_name(unsigned int bit) { - return bit < 32 ? ni_macvlan_flag_to_name(1 << bit) : NULL; + return bit < 32 ? ni_macvlan_flag_to_name(NI_BIT(bit)) : NULL; } ni_bool_t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/names.c new/wicked-0.6.62/src/names.c --- old/wicked-0.6.61/src/names.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/names.c 2020-02-26 21:42:56.000000000 +0100 @@ -226,16 +226,16 @@ { if (mask) { if (enable) - *mask |= (1U << flag); + *mask |= NI_BIT(flag); else - *mask &= ~(1U << flag); + *mask &= ~NI_BIT(flag); } } ni_bool_t ni_addrconf_flag_bit_is_set(unsigned int flags, unsigned int flag) { - return flags & (1 << flag); + return flags & NI_BIT(flag); } const char * @@ -288,9 +288,9 @@ { if (mask) { if (enable) - *mask |= (1 << flag); + *mask |= NI_BIT(flag); else - *mask &= ~(1 << flag); + *mask &= ~NI_BIT(flag); } } @@ -690,7 +690,7 @@ { if (bit >= 32) return NULL; - return ni_format_uint_mapped(1 << bit, __ni_linkifflag_names); + return ni_format_uint_mapped(NI_BIT(bit), __ni_linkifflag_names); } const char * diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/netinfo_priv.h new/wicked-0.6.62/src/netinfo_priv.h --- old/wicked-0.6.61/src/netinfo_priv.h 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/src/netinfo_priv.h 2020-02-26 21:42:56.000000000 +0100 @@ -122,7 +122,7 @@ static inline ni_bool_t __ni_addrconf_should_update(unsigned int mask, unsigned int bit) { - return !!(mask & (1 << bit)); + return !!(mask & NI_BIT(bit)); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/process.c new/wicked-0.6.62/src/process.c --- old/wicked-0.6.61/src/process.c 2019-07-26 15:27:41.000000000 +0200 +++ new/wicked-0.6.62/src/process.c 2020-02-26 21:42:56.000000000 +0100 @@ -402,7 +402,7 @@ pi->pid, pi->process->command, rv, runtime); return rv; } else - if ((rv = ni_process_signaled(pi)) != NI_PROCESS_FAILURE) { + if ((rv = ni_process_term_signal(pi)) != NI_PROCESS_FAILURE) { ni_debug_extension("subprocess %d (%s) died with signal %d%s%s", pi->pid, pi->process->command, rv, ni_process_core_dumped(pi) ? " (core dumped)" : "", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/route.c new/wicked-0.6.62/src/route.c --- old/wicked-0.6.61/src/route.c 2019-07-26 15:27:41.000000000 +0200 +++ new/wicked-0.6.62/src/route.c 2020-02-26 21:42:56.000000000 +0100 @@ -2197,7 +2197,7 @@ ni_stringbuf_printf(out, " pref auto"); if (rule->flags & NI_BIT(NI_RULE_INVERT)) - ni_stringbuf_printf(out, " not", rule->pref); + ni_stringbuf_printf(out, " not"); if (rule->src.len) ni_stringbuf_printf(out, " from %s/%u", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/timer.c new/wicked-0.6.62/src/timer.c --- old/wicked-0.6.61/src/timer.c 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/src/timer.c 2020-02-26 21:42:56.000000000 +0100 @@ -52,9 +52,9 @@ if ((timer = __ni_timer_disarm(handle)) != NULL) { user_data = timer->user_data; - free(timer); ni_debug_verbose(NI_LOG_DEBUG2, NI_TRACE_TIMER, "%s: released timer %p", __func__, timer); + free(timer); } else { ni_debug_verbose(NI_LOG_DEBUG2, NI_TRACE_TIMER, "%s: timer %p NOT found", __func__, handle); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/update.c new/wicked-0.6.62/src/update.c --- old/wicked-0.6.61/src/update.c 2019-07-03 09:56:55.000000000 +0200 +++ new/wicked-0.6.62/src/update.c 2020-02-26 21:42:56.000000000 +0100 @@ -1528,7 +1528,7 @@ ni_addrconf_type_to_name(job->lease->type), ni_addrconf_state_to_name(job->lease->state), ni_updater_name(job->kind), - ni_basename(shellcmd->command), pi->pid); + ni_basename(pi->process->command), pi->pid); } else { ni_process_free(pi); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/src/util.c new/wicked-0.6.62/src/util.c --- old/wicked-0.6.61/src/util.c 2019-12-11 11:59:56.000000000 +0100 +++ new/wicked-0.6.62/src/util.c 2020-02-26 21:44:57.000000000 +0100 @@ -652,7 +652,7 @@ { ni_var_t *var, tmp = NI_VAR_INIT; - if (!nva || !name) + if (!nva) return FALSE; if (!ni_var_set(&tmp, name, value)) @@ -857,7 +857,7 @@ { ni_var_t *var; - if (!nva || !name) + if (!nva) return FALSE; if ((var = ni_var_array_get(nva, name))) { @@ -1030,7 +1030,7 @@ { if (!bf || !ni_bitfield_grow(bf, bit)) return FALSE; - bf->field[bit / 32] |= (1 << (bit % 32)); + bf->field[bit / 32] |= NI_BIT(bit % 32u); return TRUE; } @@ -1039,7 +1039,7 @@ { if (!bf || !ni_bitfield_grow(bf, bit)) return FALSE; - bf->field[bit / 32] &= ~(1 << (bit % 32)); + bf->field[bit / 32] &= ~NI_BIT(bit % 32u); return TRUE; } @@ -1057,7 +1057,7 @@ { if (!bf || bit / 32 >= bf->size) return FALSE; - return !!(bf->field[bit / 32] & (1 << (bit % 32))); + return !!(bf->field[bit / 32] & NI_BIT(bit % 32u)); } ni_bool_t @@ -2032,7 +2032,7 @@ sep = "|"; for (i = 0; map->name; ++map) { - flag = (1 << map->value); + flag = NI_BIT(map->value); if (flags & flag) { flags &= ~flag; if (i++) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/wicked.spec new/wicked-0.6.62/wicked.spec --- old/wicked-0.6.61/wicked.spec 2019-12-11 12:06:05.000000000 +0100 +++ new/wicked-0.6.62/wicked.spec 2020-02-26 21:47:22.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package wicked # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,18 +12,18 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define release_prefix %{?snapshot:%{snapshot}}%{!?snapshot:0} Name: wicked -Version: 0.6.61 +Version: 0.6.62 Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure -License: GPL-2.0 +License: GPL-2.0-or-later Group: System/Management -Url: https://github.com/openSUSE/wicked +URL: https://github.com/openSUSE/wicked Source0: %{name}-%{version}.tar.bz2 Source1: wicked-rpmlintrc # @@ -39,7 +39,7 @@ BuildRequires: automake BuildRequires: libtool BuildRequires: make -Provides: libwicked-0_6_61 = %{version} +Provides: libwicked-0_6_62 = %{version} Obsoletes: libwicked-0-6 <= %{version} %if 0%{?suse_version} >= 1500 @@ -84,7 +84,7 @@ %endif %if %{with systemd} -BuildRequires: systemd-devel +BuildRequires: pkgconfig(libsystemd) BuildRequires: systemd-rpm-macros %{?systemd_requires} %if 0%{?suse_version:1} @@ -155,7 +155,7 @@ Group: Development/Libraries/C and C++ Requires: dbus-1-devel Requires: libnl3-devel -Requires: libwicked-0_6_61 = %{version} +Requires: libwicked-0_6_62 = %{version} %description devel Wicked is a network configuration infrastructure incorporating a number @@ -420,5 +420,4 @@ %_mandir/man7/wicked.7* %endif - %changelog diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wicked-0.6.61/wicked.spec.in new/wicked-0.6.62/wicked.spec.in --- old/wicked-0.6.61/wicked.spec.in 2019-12-11 11:59:41.000000000 +0100 +++ new/wicked-0.6.62/wicked.spec.in 2020-02-26 21:44:57.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package wicked # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -21,9 +21,9 @@ Version: @PACKAGE_VERSION@ Release: %{release_prefix}.0.0 Summary: Network configuration infrastructure -License: GPL-2.0 +License: GPL-2.0-or-later Group: System/Management -Url: @PACKAGE_URL@ +URL: @PACKAGE_URL@ Source0: %{name}-%{version}.tar.bz2 Source1: wicked-rpmlintrc # @@ -84,7 +84,7 @@ %endif %if %{with systemd} -BuildRequires: systemd-devel +BuildRequires: pkgconfig(libsystemd) BuildRequires: systemd-rpm-macros %{?systemd_requires} %if 0%{?suse_version:1} @@ -420,5 +420,4 @@ %_mandir/man7/wicked.7* %endif - %changelog
