scripts/kernel-doc: Escape all literal braces in regexes (Closes: #905116)
This commit is contained in:
parent
5254e35d9d
commit
27f02c775b
|
@ -20,6 +20,7 @@ linux (4.18~rc7-1~exp1) UNRELEASED; urgency=medium
|
||||||
* cpupower: Fix handling of noopt and nostrip build options
|
* cpupower: Fix handling of noopt and nostrip build options
|
||||||
* debian/bin/gencontrol_signed.py: Add certificate fingerprints to template
|
* debian/bin/gencontrol_signed.py: Add certificate fingerprints to template
|
||||||
metadata
|
metadata
|
||||||
|
* scripts/kernel-doc: Escape all literal braces in regexes (Closes: #905116)
|
||||||
|
|
||||||
-- Uwe Kleine-König <ukleinek@debian.org> Sat, 21 Jul 2018 16:52:01 +0200
|
-- Uwe Kleine-König <ukleinek@debian.org> Sat, 21 Jul 2018 16:52:01 +0200
|
||||||
|
|
||||||
|
|
96
debian/patches/bugfix/all/scripts-kernel-doc-escape-all-literal-braces-in-rege.patch
vendored
Normal file
96
debian/patches/bugfix/all/scripts-kernel-doc-escape-all-literal-braces-in-rege.patch
vendored
Normal file
|
@ -0,0 +1,96 @@
|
||||||
|
From: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
Date: Sun, 5 Aug 2018 23:44:24 +0800
|
||||||
|
Subject: scripts/kernel-doc: Escape all literal braces in regexes
|
||||||
|
Bug-Debian: https://bugs.debian.org/905116
|
||||||
|
Forwarded: https://marc.info/?l=linux-doc&m=153348608531181&w=2
|
||||||
|
|
||||||
|
Braces are usually metacharacters in regexes, used to specify a
|
||||||
|
number of repetitions or as part of an escape sequence. If this
|
||||||
|
interpretation is not possible then Perl currently treats them
|
||||||
|
as literal characters.
|
||||||
|
|
||||||
|
Perl 5.28 has deprecated the literal interpretation of left braces,
|
||||||
|
and Perl 5.32 will remove it (resulting in a fatal error).
|
||||||
|
|
||||||
|
Escape all left braces that are treated as literal characters. Also
|
||||||
|
escape literal right braces, for consistency and to avoid confusing
|
||||||
|
bracket-matching in text editors.
|
||||||
|
|
||||||
|
References: https://bugs.debian.org/905116
|
||||||
|
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||||
|
---
|
||||||
|
scripts/kernel-doc | 20 ++++++++++----------
|
||||||
|
1 file changed, 10 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
|
||||||
|
index 0057d8eafcc1..8f0f508a78e9 100755
|
||||||
|
--- a/scripts/kernel-doc
|
||||||
|
+++ b/scripts/kernel-doc
|
||||||
|
@@ -1062,7 +1062,7 @@ sub dump_struct($$) {
|
||||||
|
my $x = shift;
|
||||||
|
my $file = shift;
|
||||||
|
|
||||||
|
- if ($x =~ /(struct|union)\s+(\w+)\s*{(.*)}/) {
|
||||||
|
+ if ($x =~ /(struct|union)\s+(\w+)\s*\{(.*)\}/) {
|
||||||
|
my $decl_type = $1;
|
||||||
|
$declaration_name = $2;
|
||||||
|
my $members = $3;
|
||||||
|
@@ -1148,20 +1148,20 @@ sub dump_struct($$) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)}([^\{\}\;]*)\;/$newmember/;
|
||||||
|
+ $members =~ s/(struct|union)([^\{\};]+)\{([^\{\}]*)\}([^\{\}\;]*)\;/$newmember/;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Ignore other nested elements, like enums
|
||||||
|
- $members =~ s/({[^\{\}]*})//g;
|
||||||
|
+ $members =~ s/(\{[^\{\}]*\})//g;
|
||||||
|
|
||||||
|
create_parameterlist($members, ';', $file, $declaration_name);
|
||||||
|
check_sections($file, $declaration_name, $decl_type, $sectcheck, $struct_actual);
|
||||||
|
|
||||||
|
# Adjust declaration for better display
|
||||||
|
- $declaration =~ s/([{;])/$1\n/g;
|
||||||
|
- $declaration =~ s/}\s+;/};/g;
|
||||||
|
+ $declaration =~ s/([\{;])/$1\n/g;
|
||||||
|
+ $declaration =~ s/\}\s+;/};/g;
|
||||||
|
# Better handle inlined enums
|
||||||
|
- do {} while ($declaration =~ s/(enum\s+{[^}]+),([^\n])/$1,\n$2/);
|
||||||
|
+ do {} while ($declaration =~ s/(enum\s+\{[^\}]+),([^\n])/$1,\n$2/);
|
||||||
|
|
||||||
|
my @def_args = split /\n/, $declaration;
|
||||||
|
my $level = 1;
|
||||||
|
@@ -1171,12 +1171,12 @@ sub dump_struct($$) {
|
||||||
|
$clause =~ s/\s+$//;
|
||||||
|
$clause =~ s/\s+/ /;
|
||||||
|
next if (!$clause);
|
||||||
|
- $level-- if ($clause =~ m/(})/ && $level > 1);
|
||||||
|
+ $level-- if ($clause =~ m/(\})/ && $level > 1);
|
||||||
|
if (!($clause =~ m/^\s*#/)) {
|
||||||
|
$declaration .= "\t" x $level;
|
||||||
|
}
|
||||||
|
$declaration .= "\t" . $clause . "\n";
|
||||||
|
- $level++ if ($clause =~ m/({)/ && !($clause =~m/}/));
|
||||||
|
+ $level++ if ($clause =~ m/(\{)/ && !($clause =~m/\}/));
|
||||||
|
}
|
||||||
|
output_declaration($declaration_name,
|
||||||
|
'struct',
|
||||||
|
@@ -1244,7 +1244,7 @@ sub dump_enum($$) {
|
||||||
|
# strip #define macros inside enums
|
||||||
|
$x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos;
|
||||||
|
|
||||||
|
- if ($x =~ /enum\s+(\w+)\s*{(.*)}/) {
|
||||||
|
+ if ($x =~ /enum\s+(\w+)\s*\{(.*)\}/) {
|
||||||
|
$declaration_name = $1;
|
||||||
|
my $members = $2;
|
||||||
|
my %_members;
|
||||||
|
@@ -1785,7 +1785,7 @@ sub process_proto_type($$) {
|
||||||
|
}
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
- if ( $x =~ /([^{};]*)([{};])(.*)/ ) {
|
||||||
|
+ if ( $x =~ /([^\{\};]*)([\{\};])(.*)/ ) {
|
||||||
|
if( length $prototype ) {
|
||||||
|
$prototype .= " "
|
||||||
|
}
|
|
@ -90,6 +90,7 @@ bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch
|
||||||
debian/revert-objtool-fix-config_stack_validation-y-warning.patch
|
debian/revert-objtool-fix-config_stack_validation-y-warning.patch
|
||||||
bugfix/all/i40e-build-for-64-bit-targets-only.patch
|
bugfix/all/i40e-build-for-64-bit-targets-only.patch
|
||||||
bugfix/all/netfilter-ipvs-Fix-invalid-bytes-in-IP_VS_MH_TAB_IND.patch
|
bugfix/all/netfilter-ipvs-Fix-invalid-bytes-in-IP_VS_MH_TAB_IND.patch
|
||||||
|
bugfix/all/scripts-kernel-doc-escape-all-literal-braces-in-rege.patch
|
||||||
|
|
||||||
# Miscellaneous features
|
# Miscellaneous features
|
||||||
features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch
|
features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch
|
||||||
|
|
Loading…
Reference in New Issue