Sync from SUSE:SLFO:Main netcontrol revision eb96a094b8241d85f2eaad8d950514f3

This commit is contained in:
Adrian Schröter 2024-10-03 17:40:21 +02:00
parent b731750323
commit f611c7f90f
4 changed files with 190 additions and 57 deletions

View File

@ -0,0 +1,124 @@
From ad6ac1b9685d6340ee1f430eeec0bf800b4e5fa1 Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Fri, 21 Jul 2023 15:57:42 +0200
Subject: [PATCH 1/2] xml-reader: fix xml_getc() and xml_ungetc()
References: bsc#1213349
Upstream: yes
diff --git a/src/xml-reader.c b/src/xml-reader.c
index ca7f820..e5e9587 100644
--- a/src/xml-reader.c
+++ b/src/xml-reader.c
@@ -70,7 +70,7 @@ typedef enum {
typedef struct xml_reader {
const char * filename;
FILE * file;
- char * buffer;
+ unsigned char * buffer;
unsigned int no_close : 1;
@@ -107,8 +107,8 @@ static void xml_debug(const char *, ...);
static int xml_reader_init_file(xml_reader_t *xr, FILE *fp);
static int xml_reader_open(xml_reader_t *xr, const char *filename);
static int xml_reader_destroy(xml_reader_t *xr);
-static char xml_getc(xml_reader_t *xr);
-static void xml_ungetc(xml_reader_t *xr, char cc);
+static int xml_getc(xml_reader_t *xr);
+static void xml_ungetc(xml_reader_t *xr, int cc);
/*
* Document reader implementation
@@ -463,7 +463,7 @@ xml_token_type_t
xml_get_token_initial(xml_reader_t *xr, nc_stringbuf_t *res)
{
xml_token_type_t token;
- char cc;
+ int cc;
restart:
/* Eat initial white space and store it in @res */
@@ -551,7 +551,7 @@ restart:
xml_token_type_t
xml_get_token_tag(xml_reader_t *xr, nc_stringbuf_t *res)
{
- char cc, oc;
+ int cc, oc;
xml_skip_space(xr, NULL);
@@ -632,8 +632,7 @@ error:
xml_token_type_t
xml_skip_comment(xml_reader_t *xr)
{
- int match = 0;
- char cc;
+ int match = 0, cc;
if (xml_getc(xr) != '-') {
xml_parse_error(xr, "Unexpected <!-...> element");
@@ -668,7 +667,7 @@ int
xml_expand_entity(xml_reader_t *xr, nc_stringbuf_t *res)
{
nc_stringbuf_t entity = NC_STRINGBUF_INIT;
- char cc, expanded;
+ int cc, expanded;
if(nc_stringbuf_grow(&entity, 128) < 0) {
xml_parse_error(xr, "Unable to allocate entity buffer");
@@ -680,7 +679,7 @@ xml_expand_entity(xml_reader_t *xr, nc_stringbuf_t *res)
xml_parse_error(xr, "Unexpenced EOF in entity");
return 0;
}
- if (isspace(cc))
+ if (isspace((unsigned int)cc))
continue;
nc_stringbuf_putc(&entity, cc);
}
@@ -720,7 +719,7 @@ good:
void
xml_skip_space(xml_reader_t *xr, nc_stringbuf_t *result)
{
- char cc;
+ int cc;
while ((cc = xml_getc(xr)) != EOF) {
if (!isspace(cc)) {
@@ -863,10 +862,10 @@ xml_reader_destroy(xml_reader_t *xr)
return rv;
}
-char
+int
xml_getc(xml_reader_t *xr)
{
- char cc;
+ int cc;
while (1) {
if (xr->pos) {
@@ -883,17 +882,17 @@ xml_getc(xml_reader_t *xr)
break;
}
- if (fgets(xr->buffer, XML_READER_BUFSZ, xr->file) == NULL)
+ if (fgets((char *)xr->buffer, XML_READER_BUFSZ, xr->file) == NULL)
break;
- xr->pos = (unsigned char *) xr->buffer;
+ xr->pos = xr->buffer;
}
return EOF;
}
void
-xml_ungetc(xml_reader_t *xr, char cc)
+xml_ungetc(xml_reader_t *xr, int cc)
{
if (xr->pos == NULL
|| xr->pos == (unsigned char *) xr->buffer
--
2.35.3

View File

@ -0,0 +1,31 @@
From 9a38e053226d01721126a21ee80396488782995d Mon Sep 17 00:00:00 2001
From: Clemens Famulla-Conrad <cfamullaconrad@suse.de>
Date: Fri, 21 Jul 2023 15:59:00 +0200
Subject: [PATCH 2/2] xml-reader: allow uppercase for &lt;, &gt; and &amp;
expansion
References: bsc#1213349
Upstream: yes
diff --git a/src/xml-reader.c b/src/xml-reader.c
index e5e9587..1ab16ea 100644
--- a/src/xml-reader.c
+++ b/src/xml-reader.c
@@ -689,11 +689,11 @@ xml_expand_entity(xml_reader_t *xr, nc_stringbuf_t *res)
return 0;
}
- if (!strcmp(entity.string, "lt"))
+ if (!strcasecmp(entity.string, "lt"))
expanded = '<';
- else if (!strcmp(entity.string, "gt"))
+ else if (!strcasecmp(entity.string, "gt"))
expanded = '>';
- else if (!strcmp(entity.string, "amp"))
+ else if (!strcasecmp(entity.string, "amp"))
expanded = '&';
else {
const char *es = entity.string;
--
2.35.3

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Thu Feb 22 14:01:02 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>
- Use %autosetup macro. Allows to eliminate the usage of deprecated
%patchN
-------------------------------------------------------------------
Tue Nov 7 21:48:46 UTC 2023 - Dirk Müller <dmueller@suse.com>
- spec-cleaner run
-------------------------------------------------------------------
Fri Jul 21 15:06:25 UTC 2023 - Clemens Famulla-Conrad <cfamullaconrad@suse.com>
- Fix EOF handling in xml-reader to avoid `virsh iface-*` commands
hang on aarch64 (bsc#1213349)
[+ 0001-xml-reader-fix-xml_getc-and-xml_ungetc.patch,
+ 0002-xml-reader-allow-uppercase-for-lt-gt-and-amp-expansi.patch]
------------------------------------------------------------------- -------------------------------------------------------------------
Tue Jun 15 15:48:36 UTC 2021 - Marius Tomaschewski <mt@suse.com> Tue Jun 15 15:48:36 UTC 2021 - Marius Tomaschewski <mt@suse.com>
@ -123,7 +142,7 @@ Mon Jul 2 11:00:33 UTC 2012 - mt@suse.de
interface operstate to better match ifstatus results interface operstate to better match ifstatus results
- Check type while creating topology tree as well, not - Check type while creating topology tree as well, not
only if the interface specific data exists. only if the interface specific data exists.
- Do not report error in ncf_if_xml_state when interface - Do not report error in ncf_if_xml_state when interface
does not exists any more [has been stopped/removed]. does not exists any more [has been stopped/removed].
- Improved error handling, report several errors once - Improved error handling, report several errors once
- Expose a lot of error details to the caller - Expose a lot of error details to the caller
@ -132,9 +151,9 @@ Mon Jul 2 11:00:33 UTC 2012 - mt@suse.de
- Fetch mac address from system when not in the config - Fetch mac address from system when not in the config
- Fixed arp ip target bonding option handling and expose - Fixed arp ip target bonding option handling and expose
errors while trying to add not unique slave interface. errors while trying to add not unique slave interface.
- Refresh config handle earlier in ncf_define, fixed a - Refresh config handle earlier in ncf_define, fixed a
double free in regression test it does. double free in regression test it does.
- Automatically start port/slave/base interfeces when - Automatically start port/slave/base interfeces when
stating a bridge/bond/vlan. stating a bridge/bond/vlan.
------------------------------------------------------------------- -------------------------------------------------------------------
@ -197,7 +216,7 @@ Wed Jul 6 19:03:28 UTC 2011 - mt@suse.de
- version 0.2.1, fixing config cleanup of depending interfaces - version 0.2.1, fixing config cleanup of depending interfaces
while configure and delete action, ifup and ifdown actions, while configure and delete action, ifup and ifdown actions,
adding several checks and removing patch level from the API adding several checks and removing patch level from the API
version (fate#306765). version (fate#306765).
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Jul 1 11:17:17 UTC 2011 - mt@suse.de Fri Jul 1 11:17:17 UTC 2011 - mt@suse.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package netcontrol # spec file for package netcontrol
# #
# Copyright (c) 2021 SUSE LLC # Copyright (c) 2023 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -31,39 +31,20 @@ License: LGPL-2.1-or-later
Group: Productivity/Networking/System Group: Productivity/Networking/System
Source0: %{name}-%{version}.tar.bz2 Source0: %{name}-%{version}.tar.bz2
Source1: baselibs.conf Source1: baselibs.conf
BuildRoot: %{_tmppath}/%{name}-%{version}-build Patch1: 0001-xml-reader-fix-xml_getc-and-xml_ungetc.patch
%if 0%{?suse_version} >= 1310 Patch2: 0002-xml-reader-allow-uppercase-for-lt-gt-and-amp-expansi.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
BuildRequires: libnl3-devel BuildRequires: libnl3-devel
BuildRequires: libtool BuildRequires: libtool
%else BuildRequires: pkgconfig
%if 0%{?suse_version} >= 1210
BuildRequires: libnl-1_1-devel
%else
BuildRequires: libnl-devel
%endif
%endif
BuildRequires: pkg-config
%if 0%{?suse_version} >= 1230
Requires: sysconfig >= 0.80.0 Requires: sysconfig >= 0.80.0
%else
Requires: sysconfig >= 0.71.0
%endif
%description %description
A interim network configuration library, currently implementing the A interim network configuration library, currently implementing the
libnetcf interface for libvirt. libnetcf interface for libvirt.
Authors:
--------
Olaf Kirch <okir@suse.de>
Marius Tomaschewski <mt@suse.de>
%package -n libnetcontrol0 %package -n libnetcontrol0
Summary: A network configuration library Summary: A network configuration library
Group: Productivity/Networking/System Group: Productivity/Networking/System
@ -73,15 +54,7 @@ libnetcf interface for libvirt.
The libnetcontrol0 package provides the shared library. The libnetcontrol0 package provides the shared library.
Authors:
--------
Olaf Kirch <okir@suse.de>
Marius Tomaschewski <mt@suse.de>
%package -n libnetcontrol-devel %package -n libnetcontrol-devel
Summary: Development header and library files Summary: Development header and library files
Group: Development/Libraries/C and C++ Group: Development/Libraries/C and C++
Requires: libnetcontrol0 = %{version} Requires: libnetcontrol0 = %{version}
@ -93,43 +66,29 @@ libnetcf interface for libvirt.
The libnetcontrol-devel package contains libraries and header files The libnetcontrol-devel package contains libraries and header files
required for development. required for development.
Authors:
--------
Olaf Kirch <okir@suse.de>
Marius Tomaschewski <mt@suse.de>
%prep %prep
%setup -q %autosetup -p1
%build %build
export CFLAGS="-W -Wall $RPM_OPT_FLAGS"
%configure \ %configure \
%if 0%{?suse_version} >= 1230
--enable-network-service \ --enable-network-service \
%endif
--enable-pthreads \ --enable-pthreads \
--disable-static --disable-static
make %{?_smp_mflags} %make_build
%install %install
make install DESTDIR=$RPM_BUILD_ROOT %make_install
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la find %{buildroot} -type f -name "*.la" -delete -print
%post -n libnetcontrol0 %post -n libnetcontrol0 -p /sbin/ldconfig
/sbin/ldconfig %postun -n libnetcontrol0 -p /sbin/ldconfig
%postun -n libnetcontrol0
/sbin/ldconfig
%files -n libnetcontrol0 %files -n libnetcontrol0
%defattr(-,root,root,-)
%{_libdir}/*.so.* %{_libdir}/*.so.*
%files -n libnetcontrol-devel %files -n libnetcontrol-devel
%defattr(-,root,root,-) %license COPYING.LGPL COPYING.GPL
%doc README COPYING.LGPL COPYING.GPL ChangeLog.git %doc README ChangeLog.git
%{_libdir}/*.so %{_libdir}/*.so
%{_includedir}/* %{_includedir}/*
%{_libdir}/pkgconfig/netcontrol.pc %{_libdir}/pkgconfig/netcontrol.pc