summaryrefslogtreecommitdiff
path: root/CheckMan
diff options
context:
space:
mode:
authorIvo De Decker <ivodd@debian.org>2014-12-06 18:58:19 +0000
committerIvo De Decker <ivodd@debian.org>2014-12-06 18:58:19 +0000
commitdd986e8b547c0dde924c4b566ad0894ad4f1beb9 (patch)
treea87ee49df2a732f2be8d1b3c9e46a341e6fb8698 /CheckMan
pcre3 (2:8.35-3.3) unstable; urgency=medium
* Non-maintainer upload. * Upstream patch for heap buffer overflow, CVE-2014-8964, taken from 1:8.36-1 (Closes: #770478) Thanks to Salvatore Bonaccorso for the reminder. # imported from the archive
Diffstat (limited to 'CheckMan')
-rwxr-xr-xCheckMan67
1 files changed, 67 insertions, 0 deletions
diff --git a/CheckMan b/CheckMan
new file mode 100755
index 0000000..480d735
--- /dev/null
+++ b/CheckMan
@@ -0,0 +1,67 @@
+#! /usr/bin/perl
+
+# A script to scan PCRE's man pages to check for typos in the control
+# sequences. I use only a small set of the available repertoire, so it is
+# straightforward to check that nothing else has slipped in by mistake. This
+# script should be called in the doc directory.
+
+$yield = 0;
+
+while (scalar(@ARGV) > 0)
+ {
+ $line = 0;
+ $file = shift @ARGV;
+
+ open (IN, $file) || die "Failed to open $file\n";
+
+ while (<IN>)
+ {
+ $line++;
+ if (/^\s*$/)
+ {
+ printf "Empty line $line of $file\n";
+ $yield = 1;
+ }
+ elsif (/^\./)
+ {
+ if (!/^\.\s*$|
+ ^\.B\s+\S|
+ ^\.TH\s\S|
+ ^\.SH\s\S|
+ ^\.SS\s\S|
+ ^\.TP(?:\s?\d+)?\s*$|
+ ^\.SM\s*$|
+ ^\.br\s*$|
+ ^\.rs\s*$|
+ ^\.sp\s*$|
+ ^\.nf\s*$|
+ ^\.fi\s*$|
+ ^\.P\s*$|
+ ^\.PP\s*$|
+ ^\.\\"(?:\ HREF)?\s*$|
+ ^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
+ ^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
+ ^\.\\"\s<\/a>\s*$|
+ ^\.\\"\sJOINSH\s*$|
+ ^\.\\"\sJOIN\s*$/x
+ )
+ {
+ printf "Bad control line $line of $file\n";
+ $yield = 1;
+ }
+ }
+ else
+ {
+ if (/\\[^ef]|\\f[^IBP]/)
+ {
+ printf "Bad backslash in line $line of $file\n";
+ $yield = 1;
+ }
+ }
+ }
+
+ close(IN);
+ }
+
+exit $yield;
+# End