[apparmor] [patch] fix crash in aa.py / check_for_LD_XXX()

Christian Boltz apparmor at cboltz.de
Sun Aug 17 15:56:02 UTC 2014


Hello,

this patch fixes the crash in aa.py / check_for_LD_XXX() I reported last 
night:

  File "/home/cb/apparmor/HEAD-CLEAN/utils/apparmor/aa.py", line 126, in check_for_LD_XXX
    for line in f_in:
[...]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf8 in position 40: ordinal not in range(128)


While on it, I also replaced usage of the "found" variable by "return" 
statements, which should bring a small performance improvement - if we 
have a match, it's superfluous to continue searching.

The patch also adds me to the copyright header ;-)


=== modified file 'utils/apparmor/aa.py'
--- utils/apparmor/aa.py        2014-07-22 10:56:37 +0000
+++ utils/apparmor/aa.py        2014-08-17 15:48:37 +0000
@@ -1,5 +1,6 @@
 # ----------------------------------------------------------------------
 #    Copyright (C) 2013 Kshitij Gupta <kgupta8592 at gmail.com>
+#    Copyright (C) 2014 Christian Boltz <apparmor at cboltz.de>
 #
 #    This program is free software; you can redistribute it and/or
 #    modify it under the terms of version 2 of the GNU General Public
@@ -115,18 +116,17 @@
 def check_for_LD_XXX(file):
     """Returns True if specified program contains references to LD_PRELOAD or
     LD_LIBRARY_PATH to give the Px/Ux code better suggestions"""
-    found = False
     if not os.path.isfile(file):
         return False
     size = os.stat(file).st_size
     # Limit to checking files under 100k for the sake of speed
     if size > 100000:
         return False
-    with open_file_read(file, encoding='ascii') as f_in:
+    with open(file, 'rb') as f_in:
         for line in f_in:
-            if 'LD_PRELOAD' in line or 'LD_LIBRARY_PATH' in line:
-                found = True
-    return found
+            if b'LD_PRELOAD' in line or b'LD_LIBRARY_PATH' in line:
+                return True
+    return False
 
 def fatal_error(message):
     # Get the traceback to the message



Regards,

Christian Boltz
-- 
> You cannot mix selections and patterns in a product - and we
> will remove all selection support now.
AAARRRRRRGGGGGG. Needing to re-write makeSUSEdvd again. ;-)
It looks like you do all this on purpose, just to anoy me. :-D
[> Andreas Jaeger and houghi in opensuse]




More information about the AppArmor mailing list