From: Jeff Mahoney Subject: apparmor-utils: setprofileflags() drops leading whitespace References: bnc#480795 setprofileflags() drops leading whitespace for subprofiles. writeheader() properly indents subprofiles 2 spaces per nesting level but when genprof sets the profile to enforce mode at completion, the whitespace is removed. This patch adds the whitespace globbing to the regexp and uses it to prefix the sub-profile with the correct spacing. Reported at: https://bugzilla.novell.com/show_bug.cgi?id=480795 Signed-off-by: Jeff Mahoney --- utils/SubDomain.pm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/utils/SubDomain.pm +++ b/utils/SubDomain.pm @@ -1033,13 +1033,13 @@ sub setprofileflags ($$) { if (open(PROFILE, "$filename")) { if (open(NEWPROFILE, ">$filename.new")) { while () { - if (m/^\s*(("??\/.+?"??)|(profile\s+("??.+?"??)))\s+(flags=\(.+\)\s+)*\{\s*$/) { - my ($binary, $flags) = ($1, $5); + if (m/^(\s*)(("??\/.+?"??)|(profile\s+("??.+?"??)))\s+(flags=\(.+\)\s+)*\{\s*$/) { + my ($space, $binary, $flags) = ($1, $2, $6); if ($newflags) { - $_ = "$binary flags=($newflags) {\n"; + $_ = "$space$binary flags=($newflags) {\n"; } else { - $_ = "$binary {\n"; + $_ = "$space$binary {\n"; } } elsif (m/^(\s*\^\S+)\s+(flags=\(.+\)\s+)*\{\s*$/) { my ($hat, $flags) = ($1, $2);