[apparmor] [patch] fix regexes for pivot_root etc. to avoid pivot_rootbeer is accepted

Tyler Hicks tyhicks at canonical.com
Fri Apr 25 22:05:21 UTC 2014


On 2014-04-25 23:18:19, Christian Boltz wrote:
> Hello,
> 
> short version: I don't like (pivot_)rootbeer and dbus_drivers ;-)
> 
> 
> long version:
> 
> This patch fixes regular expressions to enforce a space after some
> keyword (dbus, *mount, signal, ptrace, pivot_root) except if the line
> only contains the bare keyword.
> 
> Note that in most cases (except *mount) I used an alternation - this has 
> the advantage that it doesn't change the match group numbering, with the
> small disadvantage of having to mention the keyword twice in the regex.
> I chose this way to avoid that I have to change lots of other places and
> possibly introduce bugs by overlooking something.
> 
> For the *mount rules, I read the code - it shouldn't need any changes 
> because it uses only matches[0..2] (which also means comments are 
> ignored - it's always nice to I find additional bugs while writing a 
> patch ;-)
> 
> With this patch applied, the additional tests I proposed two hours ago
> won't fail anymore.

Acked-by: Tyler Hicks <tyhicks at canonical.com>

Thanks!

> 
> 
> === modified file 'utils/apparmor/aa.py'
> --- utils/apparmor/aa.py        2014-04-23 21:28:34 +0000
> +++ utils/apparmor/aa.py        2014-04-25 18:39:55 +0000
> @@ -2625,11 +2625,11 @@
>  RE_PROFILE_HAT_DEF = re.compile('^\s*\^(\"??.+?\"??)\s+((flags=)?\((.+)\)\s+)*\{\s*(#.*)?$')
>  RE_NETWORK_FAMILY_TYPE = re.compile('\s+(\S+)\s+(\S+)\s*,$')
>  RE_NETWORK_FAMILY = re.compile('\s+(\S+)\s*,$')
> -RE_PROFILE_DBUS = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(dbus[^#]*\s*,)\s*(#.*)?$')
> -RE_PROFILE_MOUNT = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?((mount|remount|umount)[^#]*\s*,)\s*(#.*)?$')
> -RE_PROFILE_SIGNAL = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(signal[^#]*\s*,)\s*(#.*)?$')
> -RE_PROFILE_PTRACE = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(ptrace[^#]*\s*,)\s*(#.*)?$')
> -RE_PROFILE_PIVOT_ROOT = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(pivot_root[^#]*\s*,)\s*(#.*)?$')
> +RE_PROFILE_DBUS = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(dbus\s*,|dbus\s+[^#]*\s*,)\s*(#.*)?$')
> +RE_PROFILE_MOUNT = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?((mount|remount|umount)(\s+[^#]*)?\s*,)\s*(#.*)?$')
> +RE_PROFILE_SIGNAL = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(signal\s*,|signal\s+[^#]*\s*,)\s*(#.*)?$')
> +RE_PROFILE_PTRACE = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(ptrace\s*,|ptrace\s+[^#]*\s*,)\s*(#.*)?$')
> +RE_PROFILE_PIVOT_ROOT = re.compile('^\s*(audit\s+)?(allow\s+|deny\s+)?(pivot_root\s*,|pivot_root\s+[^#]*\s*,)\s*(#.*)?$')
>  
>  # match anything that's not " or #, or matching quotes with anything except quotes inside
>  __re_no_or_quoted_hash = '([^#"]|"[^"]*")*'
> 
> 
> 
> Regards,
> 
> Christian Boltz
> -- 
> Bei Windows hat man Mailreader, der alles kann. Bei Linux hat man
> ein MUA, das eigentlich gar nichts kann, aber das verdammt gut.
> [Bernd Brodesser in suse-linux]
> 
> 
> -- 
> AppArmor mailing list
> AppArmor at lists.ubuntu.com
> Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20140425/20c28333/attachment.pgp>


More information about the AppArmor mailing list