From: Todd C. Miller Date: Tue, 8 Dec 2015 22:06:00 +0000 (-0700) Subject: Strip whitespace around '!', '=', '+=' and '-=' in Defaults entries. X-Git-Tag: SUDO_1_8_16^2~98 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e2add4ae20b365f27dbcf12bf43984aeca9f58f6;p=sudo Strip whitespace around '!', '=', '+=' and '-=' in Defaults entries. --- 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"; }