util/ck_errf.pl: add detection of unknown libcrypto and libssl libs
The list of known libs are readily available in crypto/err/openssl.ec, so lets use it to figure out if all error function codes belong to known libs. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/6455)
This commit is contained in:
parent
fa92c69aaf
commit
a21180b70f
1 changed files with 21 additions and 2 deletions
|
@ -19,6 +19,20 @@ use warnings;
|
|||
my $err_strict = 0;
|
||||
my $bad = 0;
|
||||
|
||||
# To detect if there is any error generation for a libcrypto/libssl libs
|
||||
# we don't know, we need to find out what libs we do know. That list is
|
||||
# readily available in crypto/err/openssl.ec, in form of lines starting
|
||||
# with "L ".
|
||||
my $config = "crypto/err/openssl.ec";
|
||||
my %libs = ( "SYS" => 1 );
|
||||
open my $cfh, $config or die "Trying to read $config: $!\n";
|
||||
while (<$cfh>) {
|
||||
s|\R$||; # Better chomp
|
||||
next unless m|^L ([0-9A-Z_]+)\s|;
|
||||
next if $1 eq "NONE";
|
||||
$libs{$1} = 1;
|
||||
}
|
||||
|
||||
foreach my $file (@ARGV) {
|
||||
if ( $file eq "-strict" ) {
|
||||
$err_strict = 1;
|
||||
|
@ -33,17 +47,22 @@ foreach my $file (@ARGV) {
|
|||
$func = $1;
|
||||
$func =~ tr/A-Z/a-z/;
|
||||
}
|
||||
if ( /([A-Z0-9]+)err\(([^,]+)/ && !/ckerr_ignore/ ) {
|
||||
if ( /([A-Z0-9_]+[A-Z0-9])err\(([^,]+)/ && !/ckerr_ignore/ ) {
|
||||
my $errlib = $1;
|
||||
my $n = $2;
|
||||
|
||||
unless ( $libs{$errlib} ) {
|
||||
print "$file:$.:$errlib unknown\n";
|
||||
$bad = 1;
|
||||
}
|
||||
|
||||
if ( $func eq "" ) {
|
||||
print "$file:$.:???:$n\n";
|
||||
$bad = 1;
|
||||
next;
|
||||
}
|
||||
|
||||
if ( $n !~ /([^_]+)_F_(.+)$/ ) {
|
||||
if ( $n !~ /^(.+)_F_(.+)$/ ) {
|
||||
#print "check -$file:$.:$func:$n\n";
|
||||
next;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue