Temporarily revert macro file loading fix due to regression #1953910

This commit is contained in:
Panu Matilainen 2021-04-27 10:55:36 +03:00
parent 3e8fbdcf8f
commit d56ba0c11f
2 changed files with 81 additions and 1 deletions

View File

@ -0,0 +1,74 @@
From eb8aee3f45024fa1e631ac2da5b06f5a9abf16d3 Mon Sep 17 00:00:00 2001
Message-Id: <eb8aee3f45024fa1e631ac2da5b06f5a9abf16d3.1619509954.git.pmatilai@redhat.com>
From: Panu Matilainen <pmatilai@redhat.com>
Date: Tue, 27 Apr 2021 10:51:14 +0300
Subject: [PATCH] Revert "Fix logic error in macro file reader"
This trips over the following comment line in macros.python-srpm,
preventing all subsequent macros from loading:
Temporarily revert to let Python builds continue while looking for
proper fix.
This reverts commit 75275a87cff04da65d3557f2c40ea2b526528c4c.
---
rpmio/macro.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/rpmio/macro.c b/rpmio/macro.c
index 6dfc73336..f2a2335df 100644
--- a/rpmio/macro.c
+++ b/rpmio/macro.c
@@ -209,24 +209,24 @@ findEntry(rpmMacroContext mc, const char *name, size_t namelen, size_t *pos)
static int
rdcl(char * buf, size_t size, FILE *f)
{
+ char *q = buf - 1; /* initialize just before buffer. */
size_t nb = 0;
+ size_t nread = 0;
int pc = 0, bc = 0, xc = 0;
int nlines = 0;
char *p = buf;
- char *q = buf;
if (f != NULL)
do {
- *q = '\0'; /* terminate */
+ *(++q) = '\0'; /* terminate and move forward. */
if (fgets(q, size, f) == NULL) /* read next line. */
break;
nlines++;
nb = strlen(q);
- for (q += nb; nb > 0 && iseol(q[-1]); q--)
+ nread += nb; /* trim trailing \r and \n */
+ for (q += nb - 1; nb > 0 && iseol(*q); q--)
nb--;
- if (*q == 0)
- break; /* no newline found, EOF */
- for (; p < q; p++) {
+ for (; p <= q; p++) {
switch (*p) {
case '\\':
switch (*(p+1)) {
@@ -250,14 +250,14 @@ rdcl(char * buf, size_t size, FILE *f)
case ']': if (xc > 0) xc--; break;
}
}
- if ((nb == 0 || q[-1] != '\\') && !bc && !pc && !xc) {
- *q = '\0'; /* trim trailing \r, \n */
+ if (nb == 0 || (*q != '\\' && !bc && !pc && !xc) || *(q+1) == '\0') {
+ *(++q) = '\0'; /* trim trailing \r, \n */
break;
}
q++; nb++; /* copy newline too */
size -= nb;
- if (q[-1] == '\r') /* XXX avoid \r madness */
- q[-1] = '\n';
+ if (*q == '\r') /* XXX avoid \r madness */
+ *q = '\n';
} while (size > 0);
return nlines;
}
--
2.30.2

View File

@ -32,7 +32,7 @@
%global rpmver 4.16.90
%global snapver git15395
%global rel 2
%global rel 3
%global sover 9
%global srcver %{rpmver}%{?snapver:-%{snapver}}
@ -54,6 +54,9 @@ Patch3: rpm-4.9.90-no-man-dirs.patch
# https://github.com/rpm-software-management/rpm/pull/473
Patch6: 0001-find-debuginfo.sh-decompress-DWARF-compressed-ELF-se.patch
# Temporarily for https://bugzilla.redhat.com/show_bug.cgi?id=1953910
Patch10: 0001-Revert-Fix-logic-error-in-macro-file-reader.patch
# Patches already upstream:
# These are not yet upstream
@ -554,6 +557,9 @@ fi
%doc doc/librpm/html/*
%changelog
* Tue Apr 27 2021 Panu Matilainen <pmatilai@redhat.com> - 4.16.90-0.git15395.3
- Temporarily revert macro file loading fix due to regression #1953910
* Mon Apr 26 2021 Panu Matilainen <pmatilai@redhat.com> - 4.16.90-0.git15395.2
- Add a bcond to build with external debugedit