From e2add4ae20b365f27dbcf12bf43984aeca9f58f6 Mon Sep 17 00:00:00 2001 From: "Todd C. Miller" Date: Tue, 8 Dec 2015 15:06:00 -0700 Subject: [PATCH] Strip whitespace around '!', '=', '+=' and '-=' in Defaults entries. --- plugins/sudoers/sudoers2ldif | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/sudoers/sudoers2ldif b/plugins/sudoers/sudoers2ldif index 1a6951905..3c165bc7c 100755 --- a/plugins/sudoers/sudoers2ldif +++ b/plugins/sudoers/sudoers2ldif @@ -58,12 +58,12 @@ while (<>){ # ignore blank lines next if /^\s*$/; - if (/^Defaults\s+/i) { - my $opt=$'; - $opt=~s/\s+$//; # remove trailing whitespace - push @options,$opt; + if (s/^Defaults\s+//) { + s/\s+$//; # remove trailing whitespace + # remove spaces between '!', '=', '+=' and '-=' + s/^(\S+)\s*([\+-]?=)\s*(\S.*)$/$1$2$3/ unless s/^!\s*(\S.*)$/!$1/; + push @options, $_; } elsif (/^(\S+)\s+([^=]+)=\s*(.*)/) { - # Aliases or Definitions my ($p1,$p2,$p3)=($1,$2,$3); $p2=~s/\s+$//; # remove trailing whitespace @@ -117,7 +117,6 @@ while (<>){ printf "sudoOrder: %d\n", ++$order; print "\n"; } - } else { print "parse error: $_\n"; } -- 2.40.0