aboutsummaryrefslogtreecommitdiff
path: root/openssl-1.1.0h/util/ck_errf.pl
diff options
context:
space:
mode:
Diffstat (limited to 'openssl-1.1.0h/util/ck_errf.pl')
-rwxr-xr-xopenssl-1.1.0h/util/ck_errf.pl70
1 files changed, 70 insertions, 0 deletions
diff --git a/openssl-1.1.0h/util/ck_errf.pl b/openssl-1.1.0h/util/ck_errf.pl
new file mode 100755
index 0000000..7fc5367
--- /dev/null
+++ b/openssl-1.1.0h/util/ck_errf.pl
@@ -0,0 +1,70 @@
+#! /usr/bin/env perl
+# Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License"). You may not use
+# this file except in compliance with the License. You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+# This is just a quick script to scan for cases where the 'error'
+# function name in a XXXerr() macro is wrong.
+#
+# Run in the top level by going
+# perl util/ck_errf.pl */*.c */*/*.c
+#
+
+my $err_strict = 0;
+my $bad = 0;
+
+foreach $file (@ARGV)
+ {
+ if ($file eq "-strict")
+ {
+ $err_strict = 1;
+ next;
+ }
+ open(IN,"<$file") || die "unable to open $file\n";
+ $func="";
+ while (<IN>)
+ {
+ if (!/;$/ && /^\**([a-zA-Z_].*[\s*])?([A-Za-z_0-9]+)\(.*([),]|$)/)
+ {
+ /^([^()]*(\([^()]*\)[^()]*)*)\(/;
+ $1 =~ /([A-Za-z_0-9]*)$/;
+ $func = $1;
+ $func =~ tr/A-Z/a-z/;
+ }
+ if (/([A-Z0-9]+)err\(([^,]+)/ && ! /ckerr_ignore/)
+ {
+ $errlib=$1;
+ $n=$2;
+
+ if ($func eq "")
+ { print "$file:$.:???:$n\n"; $bad = 1; next; }
+
+ if ($n !~ /([^_]+)_F_(.+)$/)
+ {
+ # print "check -$file:$.:$func:$n\n";
+ next;
+ }
+ $lib=$1;
+ $n=$2;
+
+ if ($lib ne $errlib)
+ { print "$file:$.:$func:$n [${errlib}err]\n"; $bad = 1; next; }
+
+ $n =~ tr/A-Z/a-z/;
+ if (($n ne $func) && ($errlib ne "SYS"))
+ { print "$file:$.:$func:$n\n"; $bad = 1; next; }
+ # print "$func:$1\n";
+ }
+ }
+ close(IN);
+ }
+
+if ($bad && $err_strict)
+ {
+ print STDERR "FATAL: error discrepancy\n";
+ exit 1;
+ }
+