Temporarily revert macro file loading fix due to regression #1953910
This commit is contained in:
		
							parent
							
								
									3e8fbdcf8f
								
							
						
					
					
						commit
						d56ba0c11f
					
				
							
								
								
									
										74
									
								
								0001-Revert-Fix-logic-error-in-macro-file-reader.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								0001-Revert-Fix-logic-error-in-macro-file-reader.patch
									
									
									
									
									
										Normal 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
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										8
									
								
								rpm.spec
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								rpm.spec
									
									
									
									
									
								
							@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user