[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Mon Jun 11 15:53:01 UTC 2018


The branch master has been updated
       via  a21180b70f6372fee836557df187d72f7a91b686 (commit)
      from  fa92c69aafc40a87c9b0dded9c365348a8ac4b33 (commit)


- Log -----------------------------------------------------------------
commit a21180b70f6372fee836557df187d72f7a91b686
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Jun 11 16:26:19 2018 +0200

    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 at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/6455)

-----------------------------------------------------------------------

Summary of changes:
 util/ck_errf.pl | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/util/ck_errf.pl b/util/ck_errf.pl
index ada2352..a078427 100755
--- a/util/ck_errf.pl
+++ b/util/ck_errf.pl
@@ -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;
             }


More information about the openssl-commits mailing list