forked from rpms/dnf-plugins-core
		
	add missing patch file
This commit is contained in:
		
							parent
							
								
									386c94e5bc
								
							
						
					
					
						commit
						1fcea0bdd3
					
				
							
								
								
									
										63
									
								
								SOURCES/0012-Fix-issue-with-invalid-utf8.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								SOURCES/0012-Fix-issue-with-invalid-utf8.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,63 @@ | ||||
| From 7860463eb5ccc844f1d580edd7f12496fb6923b3 Mon Sep 17 00:00:00 2001 | ||||
| From: Jonathan Wright <jonathan@almalinux.org> | ||||
| Date: Mon, 14 Aug 2023 09:55:12 -0500 | ||||
| Subject: [PATCH] fixes error with handling invalid utf-8 chars in | ||||
|  needs-restarting | ||||
| 
 | ||||
| ---
 | ||||
|  plugins/needs_restarting.py    |  2 +- | ||||
|  tests/test_needs_restarting.py | 13 +++++++++++++ | ||||
|  2 files changed, 14 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/plugins/needs_restarting.py b/plugins/needs_restarting.py
 | ||||
| index 1fedb73..d8ab0bc 100644
 | ||||
| --- a/plugins/needs_restarting.py
 | ||||
| +++ b/plugins/needs_restarting.py
 | ||||
| @@ -73,7 +73,7 @@ def list_opened_files(uid):
 | ||||
|          try: | ||||
|              if uid is not None and uid != owner_uid(smaps): | ||||
|                  continue | ||||
| -            with open(smaps, 'r') as smaps_file:
 | ||||
| +            with open(smaps, 'r', errors='replace') as smaps_file:
 | ||||
|                  lines = smaps_file.readlines() | ||||
|          except EnvironmentError: | ||||
|              logger.warning("Failed to read PID %d's smaps.", pid) | ||||
| diff --git a/tests/test_needs_restarting.py b/tests/test_needs_restarting.py
 | ||||
| index 0ad70a5..c021e06 100644
 | ||||
| --- a/tests/test_needs_restarting.py
 | ||||
| +++ b/tests/test_needs_restarting.py
 | ||||
| @@ -1,3 +1,4 @@
 | ||||
| +# coding: utf-8
 | ||||
|  # Copyright (C) 2014 Red Hat, Inc. | ||||
|  # | ||||
|  # This copyrighted material is made available to anyone wishing to use, | ||||
| @@ -20,8 +21,10 @@ from __future__ import absolute_import
 | ||||
|  from __future__ import print_function | ||||
|  from __future__ import unicode_literals | ||||
| 
 | ||||
| +from unittest.mock import patch
 | ||||
|  import needs_restarting | ||||
|  import tests.support | ||||
| +import tempfile
 | ||||
| 
 | ||||
|  DEL_FILE = '3dcf000000-3dcf032000 r-xp 00000000 08:02 140759                ' \ | ||||
|             '         /usr/lib64/libXfont.so.1.4.1;5408628d (deleted)' | ||||
| @@ -46,6 +49,16 @@ class NeedsRestartingTest(tests.support.TestCase):
 | ||||
|          self.assertTrue(ofile.deleted) | ||||
|          self.assertEqual(ofile.name, '/usr/lib64/libXfont.so.1.4.1;5408628d') | ||||
| 
 | ||||
| +    def test_list_opened_files_garbage_filename(self):
 | ||||
| +        tempObj = tempfile.NamedTemporaryFile()
 | ||||
| +        tempFile = tempObj.name
 | ||||
| +        with open(tempFile, 'wb') as bogusFile:
 | ||||
| +            bogusFile.write(b'151e7f7b7000-151e7f7b8000 r--p 00006000 fd:01 14744                      /usr/lib64/lib\xe5Evil-13.37.so')
 | ||||
| +        smaps = [[1234,tempObj.name]]
 | ||||
| +        with patch("needs_restarting.list_smaps", return_value=smaps):
 | ||||
| +            ofiles = list(needs_restarting.list_opened_files(None));
 | ||||
| +            self.assertEqual(ofiles[0].presumed_name, '/usr/lib64/lib<69>Evil-13.37.so')
 | ||||
| +
 | ||||
| 
 | ||||
|  class OpenedFileTest(tests.support.TestCase): | ||||
|      def test_presumed_name(self): | ||||
| --
 | ||||
| 2.41.0 | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user