Re: [PATCH] sepolgen: Use key function in sort()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Petr Lautrbach wrote:
In Py3.0, the cmp parameter in sort() function was removed and key keyword is
available since Py2.4.

Fixes: # cat avc.log | audit2allow -R
Traceback (most recent call last):
   File "/usr/bin/audit2allow", line 363, in<module>
     app.main()
   File "/usr/bin/audit2allow", line 351, in main
     self.__output()
   File "/usr/bin/audit2allow", line 308, in __output
     g.set_gen_refpol(ifs, perm_maps)
   File "/usr/lib64/python3.4/site-packages/sepolgen/policygen.py", line 101, in set_gen_refpol
     self.ifgen = InterfaceGenerator(if_set, perm_maps)
   File "/usr/lib64/python3.4/site-packages/sepolgen/policygen.py", line 353, in __init__
     self.hack_check_ifs(ifs)
   File "/usr/lib64/python3.4/site-packages/sepolgen/policygen.py", line 365, in hack_check_ifs
     params.sort(param_comp)
TypeError: must use keyword argument for key function

Signed-off-by: Petr Lautrbach<plautrba@xxxxxxxxxx>

Thanks, Applied.

---
  sepolgen/src/sepolgen/policygen.py | 9 ++-------
  1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/sepolgen/src/sepolgen/policygen.py b/sepolgen/src/sepolgen/policygen.py
index 4438a11..34c8401 100644
--- a/sepolgen/src/sepolgen/policygen.py
+++ b/sepolgen/src/sepolgen/policygen.py
@@ -36,8 +36,6 @@ from . import access
  from . import interfaces
  from . import matching
  from . import util
-if util.PY3:
-    from .util import cmp
  # Constants for the level of explanation from the generation
  # routines
  NO_EXPLANATION    = 0
@@ -278,15 +276,12 @@ def explain_access(av, ml=None, verbosity=SHORT_EXPLANATION):
          explain_interfaces()
      return s

-def param_comp(a, b):
-    return cmp(b.num, a.num)
-
  def call_interface(interface, av):
      params = []
      args = []

      params.extend(interface.params.values())
-    params.sort(param_comp)
+    params.sort(key=lambda param: param.num, reverse=True)

      ifcall = refpolicy.InterfaceCall()
      ifcall.ifname = interface.name
@@ -321,7 +316,7 @@ class InterfaceGenerator:
          for x in ifs.interfaces.values():
              params = []
              params.extend(x.params.values())
-            params.sort(param_comp)
+            params.sort(key=lambda param: param.num, reverse=True)
              for i in range(len(params)):
                  # Check that the paramater position matches
                  # the number (e.g., $1 is the first arg). This

_______________________________________________
Selinux mailing list
Selinux@xxxxxxxxxxxxx
To unsubscribe, send email to Selinux-leave@xxxxxxxxxxxxx.
To get help, send an email containing "help" to Selinux-request@xxxxxxxxxxxxx.



[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux