Accepting request 1099929 from network:utilities
- 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] OBS-URL: https://build.opensuse.org/request/show/1099929 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/netcontrol?expand=0&rev=21
This commit is contained in:
commit
65cd250cd4
124
0001-xml-reader-fix-xml_getc-and-xml_ungetc.patch
Normal file
124
0001-xml-reader-fix-xml_getc-and-xml_ungetc.patch
Normal 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
|
||||||
|
|
@ -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 <, > and &
|
||||||
|
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
|
||||||
|
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
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>
|
||||||
|
|
||||||
|
@ -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,6 +31,8 @@ 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
|
||||||
|
Patch1: 0001-xml-reader-fix-xml_getc-and-xml_ungetc.patch
|
||||||
|
Patch2: 0002-xml-reader-allow-uppercase-for-lt-gt-and-amp-expansi.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
%if 0%{?suse_version} >= 1310
|
%if 0%{?suse_version} >= 1310
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
@ -102,6 +104,8 @@ Authors:
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="-W -Wall $RPM_OPT_FLAGS"
|
export CFLAGS="-W -Wall $RPM_OPT_FLAGS"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user