Fix regression in new code
CVE-2005-4889-rpm-fails-to-drop-SUID-SGID-bits-on-package fails with the new code as older glibc versions don't support AT_SYMLINK_NOFOLLOW for fchmodat. Fixed upstream as https://github.com/rpm-software-management/rpm/pull/2759 Resolves: RHEL-9561 RHEL-9563 RHEL-9565
This commit is contained in:
		
							parent
							
								
									e91f7f791b
								
							
						
					
					
						commit
						284b6bc6f8
					
				| @ -513,7 +513,7 @@ index daf572cf4..e74bb2201 100644 | ||||
|      if (rc < 0) | ||||
|  	switch (errno) { | ||||
|  	case ENOENT:        rc = RPMERR_ENOENT;    break; | ||||
| @@ -365,172 +288,193 @@
 | ||||
| @@ -365,172 +288,194 @@
 | ||||
|      return rc; | ||||
|  } | ||||
|   | ||||
| @ -819,9 +819,10 @@ index daf572cf4..e74bb2201 100644 | ||||
| -    if (lstat(path, &stb) == 0 && S_ISREG(stb.st_mode)) {
 | ||||
| +    int flags = AT_SYMLINK_NOFOLLOW;
 | ||||
| +    if (fstatat(dirfd, path, &stb, flags) == 0 && S_ISREG(stb.st_mode)) {
 | ||||
| +    	/* We now know it's not a link so no need to worry about following */
 | ||||
|  	if ((stb.st_mode & 06000) != 0) { | ||||
| -	    (void) chmod(path, stb.st_mode & 0777);
 | ||||
| +	    (void) fchmodat(dirfd, path, stb.st_mode & 0777, flags);
 | ||||
| +	    (void) fchmodat(dirfd, path, stb.st_mode & 0777, 0);
 | ||||
|  	} | ||||
| -#if WITH_CAP
 | ||||
| +#ifdef WITH_CAP
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								rpm.spec
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								rpm.spec
									
									
									
									
									
								
							| @ -32,7 +32,7 @@ | ||||
| 
 | ||||
| %global rpmver 4.14.3 | ||||
| #global snapver rc2 | ||||
| %global rel 29 | ||||
| %global rel 30 | ||||
| 
 | ||||
| %global srcver %{version}%{?snapver:-%{snapver}} | ||||
| %global srcdir %{?snapver:testing}%{!?snapver:%{name}-%(echo %{version} | cut -d'.' -f1-2).x} | ||||
| @ -707,7 +707,7 @@ make check || cat tests/rpmtests.log | ||||
| %doc doc/librpm/html/* | ||||
| 
 | ||||
| %changelog | ||||
| * Tue Nov 07 2023 Florian Festi <ffesti@redhat.com> - 4.14.3-29 | ||||
| * Fri Nov 10 2023 Florian Festi <ffesti@redhat.com> - 4.14.3-30 | ||||
| - Backport file handling code from rpm-4.19 to fix CVE-2021-35937, | ||||
|   CVE-2021-35938 and CVE-2021-35939 | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user