[openssl] master update

Richard Levitte levitte at openssl.org
Sat Apr 11 13:53:00 UTC 2020


The branch master has been updated
       via  b93e2ec273f8a6e7165fddaae1fe75615c0edf5a (commit)
       via  e32e00ab200c83b138594292228d6bd26722bd95 (commit)
       via  8270c4791d361847b0b28a30d396006400758a3f (commit)
      from  eacd30a703b52f5b3e8e70b58f99bd1128458c7c (commit)


- Log -----------------------------------------------------------------
commit b93e2ec273f8a6e7165fddaae1fe75615c0edf5a
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Apr 6 14:00:55 2020 +0200

    Fix some errors in documentation
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11476)

commit e32e00ab200c83b138594292228d6bd26722bd95
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Apr 6 13:58:41 2020 +0200

    Initialize files that declare internal symbols
    
    util/other-internal.syms is like util/other.syms, but for internal symbols.
    Likewise, util/missingcrypto-internal.txt and util/missingssl-internal.txt
    are like util/missingcrypto.txt and util/missingssl.txt
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11476)

commit 8270c4791d361847b0b28a30d396006400758a3f
Author: Richard Levitte <levitte at openssl.org>
Date:   Mon Apr 6 13:51:36 2020 +0200

    Rework util/find-doc-nits to distinguish internal documentation
    
    We didn't really distinguish internal and public documentation, or
    matched that with the state of the documented symbols.  we therefore
    needed to rework the logic to account for the state of each symbol.
    
    To simplify things, and make them consistent, we load all of
    util/*.num, util/*.syms and util/missing*.txt unconditionally.
    
    Also, we rework the reading of the manuals to happen only once (or
    well, not quite, Pod::Checker reads from file too, but at the very
    least, our script isn't reading the same file multiple times).
    
    Reviewed-by: Matt Caswell <matt at openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11476)

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

Summary of changes:
 .../{DEFINE_SPARSE_ARRAY_OF.pod => OPENSSL_SA.pod} |   4 +-
 doc/internal/man3/s2i_ASN1_UTF8STRING.pod          |   6 +-
 util/find-doc-nits                                 | 243 ++++++++++++---------
 util/missingcrypto-internal.txt                    |   3 +
 util/missingcrypto.txt                             |   3 -
 .../missingssl-internal.txt                        |   0
 util/other-internal.syms                           |   3 +
 util/other.syms                                    |  12 +-
 util/perl/OpenSSL/Util/Pod.pm                      |   3 +-
 9 files changed, 156 insertions(+), 121 deletions(-)
 rename doc/internal/man3/{DEFINE_SPARSE_ARRAY_OF.pod => OPENSSL_SA.pod} (98%)
 create mode 100644 util/missingcrypto-internal.txt
 copy fuzz/corpora/bignum/da39a3ee5e6b4b0d3255bfef95601890afd80709 => util/missingssl-internal.txt (100%)
 create mode 100644 util/other-internal.syms

diff --git a/doc/internal/man3/DEFINE_SPARSE_ARRAY_OF.pod b/doc/internal/man3/OPENSSL_SA.pod
similarity index 98%
rename from doc/internal/man3/DEFINE_SPARSE_ARRAY_OF.pod
rename to doc/internal/man3/OPENSSL_SA.pod
index a78193c2e2..77f1a7b1c2 100644
--- a/doc/internal/man3/DEFINE_SPARSE_ARRAY_OF.pod
+++ b/doc/internal/man3/OPENSSL_SA.pod
@@ -2,15 +2,13 @@
 
 =head1 NAME
 
-DEFINE_SPARSE_ARRAY_OF, ossl_sa_TYPE_new, ossl_sa_TYPE_free,
+OPENSSL_SA, ossl_sa_TYPE_new, ossl_sa_TYPE_free,
 ossl_sa_TYPE_free_leaves, ossl_sa_TYPE_num, ossl_sa_TYPE_doall,
 ossl_sa_TYPE_doall_arg, ossl_sa_TYPE_get, ossl_sa_TYPE_set
 - sparse array container
 
 =head1 SYNOPSIS
 
-=for openssl generic
-
  #include "crypto/sparse_array.h"
 
  typedef struct sparse_array_st OPENSSL_SA;
diff --git a/doc/internal/man3/s2i_ASN1_UTF8STRING.pod b/doc/internal/man3/s2i_ASN1_UTF8STRING.pod
index c5b434a5b5..9b806eb80b 100644
--- a/doc/internal/man3/s2i_ASN1_UTF8STRING.pod
+++ b/doc/internal/man3/s2i_ASN1_UTF8STRING.pod
@@ -3,12 +3,12 @@
 =head1 NAME
 
 i2s_ASN1_UTF8STRING,
-s2i_ASN1_UTF8STRING,
+s2i_ASN1_UTF8STRING
 - convert objects from/to ASN.1/string representation
 
 =head1 SYNOPSIS
 
-=for openssl generic
+ #include "crypto/x509v3.h"
 
  char *i2s_ASN1_UTF8STRING(X509V3_EXT_METHOD *method,
                            ASN1_UTF8STRING *utf8);
@@ -22,7 +22,7 @@ representation. This function is used for B<X509v3> extentions.
 
 =head1 NOTES
 
-The letters B<i> and B<s> in B<i2s_ASN1_UTF8STRING>() stand for
+The letters B<i> and B<s> in i2s_ASN1_UTF8STRING() stand for
 "internal" (that is, an internal C structure) and string respectively.
 So B<i2s_ASN1_UTF8STRING>() converts from internal to string.
 
diff --git a/util/find-doc-nits b/util/find-doc-nits
index bb5dce1a4e..6eea6ad4b3 100755
--- a/util/find-doc-nits
+++ b/util/find-doc-nits
@@ -79,7 +79,6 @@ die "Need one of -[cdehlnouv] flags.\n"
 
 my $temp = '/tmp/docnits.txt';
 my $OUT;
-my %public;
 my $status = 0;
 
 my @sections = ( 'man1', 'man3', 'man5', 'man7' );
@@ -89,7 +88,17 @@ my %mandatory_sections = (
     3   => [ 'SYNOPSIS', 'RETURN VALUES' ],
     5   => [ ],
     7   => [ ]
-);
+                         );
+
+# Symbols that we ignored.
+# They are internal macros that we currently don't document
+my $ignored = qr/(?| ^i2d_
+                 |   ^d2i_
+                 |   ^DEPRECATEDIN
+                 |   \Q_fnsig(3)\E$
+                 |   ^IMPLEMENT_
+                 |   ^_?DECLARE_
+                 )/x;
 
 # Collect all POD files, both internal and public, and regardless of location
 # We collect them in a hash table with each file being a key, so we can attach
@@ -298,12 +307,6 @@ sub name_synopsis {
         if %foundfilenames;
     err($id, "$simplename (filename) missing from NAME section")
         unless $foundfilename;
-    if ( $filename !~ /internal/ ) {
-        foreach my $n ( keys %names ) {
-            err($id, "$n is not public")
-                if !defined $public{$n};
-        }
-    }
 
     # Find all functions in SYNOPSIS
     return unless $contents =~ /=head1 SYNOPSIS(.*)=head1 DESCRIPTION/ms;
@@ -537,7 +540,7 @@ sub functionname_check {
         $unmarked =~ s/[BIL]<|>//msg;
 
         err($id, "Malformed symbol: $symbol")
-            unless $symbol =~ /^B<.*>$/ && $unmarked =~ /^${symbol_re}$/
+            unless $symbol =~ /^B<.*?>$/ && $unmarked =~ /^${symbol_re}$/
     }
 
     # We can't do the kind of collecting coolness that option_check()
@@ -612,16 +615,10 @@ sub wording {
 
 # Perform all sorts of nit/error checks on a manpage
 sub check {
-    my $filename = shift;
+    my %podinfo = @_;
+    my $filename = $podinfo{filename};
     my $dirname = basename(dirname($filename));
-
-    my $contents = '';
-    {
-        local $/ = undef;
-        open POD, $filename or die "Couldn't open $filename, $!";
-        $contents = <POD>;
-        close POD;
-    }
+    my $contents = $podinfo{contents};
 
     my $id = "${filename}:1:";
     check_head_style($id, $contents);
@@ -663,7 +660,7 @@ sub check {
             unless $target =~ /^[_[:alpha:]][_[:alnum:]]*$/
     }
 
-    unless ( $contents =~ /=for openssl generic/ ) {
+    unless ( $contents =~ /^=for openssl generic/ms ) {
         if ( $filename =~ m|man3/| ) {
             name_synopsis($id, $filename, $contents);
             functionname_check($id, $filename, $contents);
@@ -740,10 +737,38 @@ sub check {
     }
 }
 
+# Information database ###############################################
+
+# Map of links in each POD file; filename => [ "foo(1)", "bar(3)", ... ]
+my %link_map = ();
+# Map of names in each POD file or from "missing" files; possible values are:
+# If found in a POD files, "name(s)" => filename
+# If found in a "missing" file or external, "name(s)" => ''
+my %name_map = ();
+
+# State of man-page names.
+# %state is affected by loading util/*.num and util/*.syms
+# Values may be one of:
+# 'crypto' : belongs in libcrypto (loaded from libcrypto.num)
+# 'ssl' : belongs in libssl (loaded from libssl.num)
+# 'other' : belongs in libcrypto or libssl (loaded from other.syms)
+# 'internal' : Internal
+# 'public' : Public (generic name or external documentation)
+# Any of these values except 'public' may be prefixed with 'missing_'
+# to indicate that they are known to be missing.
+my %state;
+# %missing is affected by loading util/missing*.txt.  Values may be one of:
+# 'crypto' : belongs in libcrypto (loaded from libcrypto.num)
+# 'ssl' : belongs in libssl (loaded from libssl.num)
+# 'other' : belongs in libcrypto or libssl (loaded from other.syms)
+# 'internal' : Internal
+my %missing;
+
 # Parse libcrypto.num, etc., and return sorted list of what's there.
-sub parsenum {
+sub loadnum ($;$) {
     my $file = shift;
-    my @apis;
+    my $type = shift;
+    my @symbols;
 
     open my $IN, '<', catfile($config{sourcedir}, $file)
         or die "Can't open $file, $!, stopped";
@@ -754,42 +779,52 @@ sub parsenum {
         my @fields = split();
         die "Malformed line $. in $file: $_"
             if scalar @fields != 2 && scalar @fields != 4;
-        push @apis, $fields[0];
+        $state{$fields[0].'(3)'} = $type // 'internal';
     }
-
     close $IN;
-
-    return sort @apis;
 }
 
-# Parse all the manpages, getting return map of what they document
-# (by looking at their NAME sections).
-# Map of links in each POD file; filename => [ "foo(1)", "bar(3)", ... ]
-my %link_map = ();
-# Map of names in each POD file; "name(s)" => filename
-my %name_map = ();
-
 # Load file of symbol names that we know aren't documented.
-sub loadmissing($)
+sub loadmissing($;$)
 {
     my $missingfile = shift;
-    my @missing;
+    my $type = shift;
 
     open FH, catfile($config{sourcedir}, $missingfile)
         or die "Can't open $missingfile";
     while ( <FH> ) {
         chomp;
         next if /^#/;
-        push @missing, $_;
+        $missing{$_} = $type // 'internal';
     }
     close FH;
+}
 
-    for (@missing) {
-        err("$missingfile:", "$_ is documented in $name_map{$_}")
-            if !$opt_o && exists $name_map{$_} && defined $name_map{$_};
+# Check that we have consistent public / internal documentation and declaration
+sub checkstate () {
+    # Collect all known names, no matter where they come from
+    my %names = map { $_ => 1 } (keys %name_map, keys %state, keys %missing);
+
+    # Check section 3, i.e. functions and macros
+    foreach ( grep { $_ =~ /\(3\)$/ } sort keys %names ) {
+        next if ( $name_map{$_} // '') eq '' || $_ =~ /$ignored/;
+
+        # If a man-page isn't recorded public or if it's recorded missing
+        # and internal, it's declared to be internal.
+        my $declared_internal =
+            ($state{$_} // 'internal') eq 'internal'
+            || ($missing{$_} // '') eq 'internal';
+        # If a man-page isn't recorded internal or if it's recorded missing
+        # and not internal, it's declared to be public
+        my $declared_public =
+            ($state{$_} // 'internal') ne 'internal'
+            || ($missing{$_} // 'internal') ne 'internal';
+
+        err("$_ is supposedly public but is documented as internal")
+            if ( $declared_public && $name_map{$_} =~ /\/internal\// );
+        err("$_ is supposedly internal but is documented as public")
+            if ( $declared_internal && $name_map{$_} !~ /\/internal\// );
     }
-
-    return @missing;
 }
 
 # Check for undocumented macros; ignore those in the "missing" file
@@ -797,13 +832,6 @@ sub loadmissing($)
 sub checkmacros {
     my $count = 0;
     my %seen;
-    my @missing;
-
-    if ( $opt_o ) {
-        @missing = loadmissing('util/missingmacro111.txt');
-    } elsif ( $opt_v ) {
-        @missing = loadmissing('util/missingmacro.txt');
-    }
 
     foreach my $f ( files(TAGS => 'public_header') ) {
         # Skip some internals we don't want to document yet.
@@ -816,16 +844,10 @@ sub checkmacros {
         while ( <IN> ) {
             next unless /^#\s*define\s*(\S+)\(/;
             my $macro = "$1(3)"; # We know they're all in section 3
-            next if exists $name_map{$macro} || defined $seen{$macro};
-            next if $macro =~ /^i2d_/
-                || $macro =~ /^d2i_/
-                || $macro =~ /^DEPRECATEDIN/
-                || $macro =~ /\Q_fnsig(3)\E$/
-                || $macro =~ /^IMPLEMENT_/
-                || $macro =~ /^_?DECLARE_/;
-
-            # Skip macros known to be missing
-            next if $opt_v && grep( /^\Q$macro\E$/, @missing);
+            next if defined $name_map{$macro}
+                || defined $missing{$macro}
+                || defined $seen{$macro}
+                || $macro =~ /$ignored/;
 
             err("$f:", "macro $macro undocumented")
                 if $opt_d || $opt_e;
@@ -840,39 +862,38 @@ sub checkmacros {
 
 # Find out what is undocumented (filtering out the known missing ones)
 # and display them.
-sub printem {
-    my $libname = shift;
-    my $numfile = shift;
-    my $missingfile = shift;
+sub printem ($) {
+    my $type = shift;
     my $count = 0;
     my %seen;
 
-    my @missing = loadmissing($missingfile) if $opt_v;
-
-    foreach my $func ( parsenum($numfile) ) {
+    foreach my $func ( grep { $_ eq $type } sort keys %state ) {
         $func .= '(3)';         # We know they're all in section 3
-        next if exists $name_map{$func} || defined $seen{$func};
 
-        # Skip functions known to be missing.
-        next if $opt_v && grep( /^\Q$func\E$/, @missing);
+        # Skip functions known to be missing
+        next if $opt_v && defined $name_map{$func} && $name_map{$func} eq '';
 
-        err("$libname:", "function $func undocumented")
+        # Skip known names
+        next if defined $name_map{$func} || defined $seen{$func};
+
+        err("$type:", "function $func undocumented")
             if $opt_d || $opt_e;
         $count++;
         $seen{$func} = 1;
     }
-    err("# $count in $numfile are not documented")
+    err("# $count lib$type names are not documented")
         if $count > 0;
 }
 
 # Collect all the names in a manpage.
 sub collectnames {
-    my $filename = shift;
+    my %podinfo = @_;
+    my $filename = $podinfo{filename};
     $filename =~ m|man(\d)/|;
     my $section = $1;
     my $simplename = basename($filename, ".pod");
     my $id = "${filename}:1:";
-    my %podinfo = extract_pod_info($filename, { debug => $debug });
+    my $is_generic = $podinfo{contents} =~ /^=for openssl generic/ms;
 
     unless ( grep { $simplename eq $_ } @{$podinfo{names}} ) {
         err($id, "$simplename not in NAME section");
@@ -883,12 +904,15 @@ sub collectnames {
         err($id, "'$name' contains white space")
             if $name =~ /\s/;
         my $name_sec = "$name($section)";
-        if ( !exists $name_map{$name_sec} ) {
+        if ( !defined $name_map{$name_sec} ) {
             $name_map{$name_sec} = $filename;
+            $state{$name_sec} =
+                ( $filename =~ /\/internal\// ? 'internal' : 'public' )
+                if $is_generic;
         } elsif ( $filename eq $name_map{$name_sec} ) {
             err($id, "$name_sec duplicated in NAME section of",
                  $name_map{$name_sec});
-        } else {
+        } elsif ( $name_map{$name_sec} ne '' ) {
             err($id, "$name_sec also in NAME section of",
                  $name_map{$name_sec});
         }
@@ -896,7 +920,8 @@ sub collectnames {
 
     if ( $podinfo{contents} =~ /=for openssl foreign manual (.*)\n/ ) {
         foreach my $f ( split / /, $1 ) {
-            $name_map{$f} = undef; # It still exists!
+            $name_map{$f} = ''; # It still exists!
+            $state{$f} = 'public'; # We assume!
         }
     }
 
@@ -918,24 +943,15 @@ sub checklinks {
     foreach my $filename ( sort keys %link_map ) {
         foreach my $link ( @{$link_map{$filename}} ) {
             err("${filename}:1:", "reference to non-existing $link")
-                unless exists $name_map{$link};
+                unless defined $name_map{$link} || defined $missing{$link};
+            err("${filename}:1:", "reference of internal $link in public documentation $filename")
+                if ( ( ($state{$link} // '') eq 'internal'
+                       || ($missing{$link} // '') eq 'internal' )
+                     && $filename !~ /\/internal\// );
         }
     }
 }
 
-# Load the public symbol/macro names
-sub publicize {
-    foreach my $name ( parsenum('util/libcrypto.num') ) {
-        $public{$name} = 1;
-    }
-    foreach my $name ( parsenum('util/libssl.num') ) {
-        $public{$name} = 1;
-    }
-    foreach my $name ( parsenum('util/other.syms') ) {
-        $public{$name} = 1;
-    }
-}
-
 # Cipher/digests to skip if they show up as "not implemented"
 # because they are, via the "-*" construct.
 my %skips = (
@@ -1062,26 +1078,42 @@ if ( $opt_c ) {
     exit $status;
 }
 
-# Preparation for some options, populate %name_map and %link_map
-if ( $opt_l || $opt_u || $opt_v ) {
-    foreach ( files(TAGS => 'manual') ) {
-        collectnames($_);
+# Populate %state
+loadnum('util/libcrypto.num', 'crypto');
+loadnum('util/libssl.num', 'ssl');
+loadnum('util/other.syms', 'other');
+loadnum('util/other-internal.syms');
+if ( $opt_o ) {
+    loadmissing('util/missingmacro111.txt', 'crypto');
+    loadmissing('util/missingcrypto111.txt', 'crypto');
+    loadmissing('util/missingssl111.txt', 'ssl');
+} else {
+    loadmissing('util/missingmacro.txt', 'crypto');
+    loadmissing('util/missingcrypto.txt', 'crypto');
+    loadmissing('util/missingssl.txt', 'ssl');
+    loadmissing('util/missingcrypto-internal.txt');
+    loadmissing('util/missingssl-internal.txt');
+}
+
+if ( $opt_n || $opt_l || $opt_u || $opt_v ) {
+    my @files_to_read = ( $opt_n && @ARGV ) ? @ARGV : files(TAGS => 'manual');
+
+    foreach (@files_to_read) {
+        my %podinfo = extract_pod_info($_, { debug => $debug });
+
+        collectnames(%podinfo)
+            if ( $opt_l || $opt_u || $opt_v );
+
+        check(%podinfo)
+            if ( $opt_n );
     }
 }
 
 if ( $opt_l ) {
-    foreach my $func ( loadmissing("util/missingcrypto.txt") ) {
-        $name_map{$func} = undef;
-    }
     checklinks();
 }
 
 if ( $opt_n ) {
-    publicize();
-    foreach ( @ARGV ? @ARGV : files(TAGS => 'manual') ) {
-        check($_);
-    }
-
     # If not given args, check that all man1 commands are named properly.
     if ( scalar @ARGV == 0 ) {
         foreach ( files(TAGS => [ 'public_manual', 'man1' ]) ) {
@@ -1091,14 +1123,11 @@ if ( $opt_n ) {
     }
 }
 
+checkstate();
+
 if ( $opt_u || $opt_v) {
-    if ( $opt_o ) {
-        printem('crypto', 'util/libcrypto.num', 'util/missingcrypto111.txt');
-        printem('ssl', 'util/libssl.num', 'util/missingssl111.txt');
-    } else {
-        printem('crypto', 'util/libcrypto.num', 'util/missingcrypto.txt');
-        printem('ssl', 'util/libssl.num', 'util/missingssl.txt');
-    }
+    printem('crypto');
+    printem('ssl');
     checkmacros();
 }
 
diff --git a/util/missingcrypto-internal.txt b/util/missingcrypto-internal.txt
new file mode 100644
index 0000000000..4c90857035
--- /dev/null
+++ b/util/missingcrypto-internal.txt
@@ -0,0 +1,3 @@
+WPACKET(3)
+WPACKET_init_der(3)
+WPACKET_init_null_der(3)
diff --git a/util/missingcrypto.txt b/util/missingcrypto.txt
index 73c5af9101..6ce32388a2 100644
--- a/util/missingcrypto.txt
+++ b/util/missingcrypto.txt
@@ -1274,9 +1274,6 @@ WHIRLPOOL_BitUpdate(3)
 WHIRLPOOL_Final(3)
 WHIRLPOOL_Init(3)
 WHIRLPOOL_Update(3)
-WPACKET(3)
-WPACKET_init_der(3)
-WPACKET_init_null_der(3)
 X509V3_EXT_CRL_add_conf(3)
 X509V3_EXT_CRL_add_nconf(3)
 X509V3_EXT_REQ_add_conf(3)
diff --git a/fuzz/corpora/bignum/da39a3ee5e6b4b0d3255bfef95601890afd80709 b/util/missingssl-internal.txt
similarity index 100%
copy from fuzz/corpora/bignum/da39a3ee5e6b4b0d3255bfef95601890afd80709
copy to util/missingssl-internal.txt
diff --git a/util/other-internal.syms b/util/other-internal.syms
new file mode 100644
index 0000000000..5688daa687
--- /dev/null
+++ b/util/other-internal.syms
@@ -0,0 +1,3 @@
+ossl_cmp_allow_unprotected_cb_t         datatype
+#
+DEFINE_SPARSE_ARRAY_OF                  define
diff --git a/util/other.syms b/util/other.syms
index 90fba73ca9..9f44034fd5 100644
--- a/util/other.syms
+++ b/util/other.syms
@@ -11,7 +11,9 @@ OPENSSL_instrument_bus2                 assembler
 #
 ADMISSION_SYNTAX                        datatype
 ADMISSIONS                              datatype
+ASN1_ITEM                               datatype
 ASN1_STRING_TABLE                       datatype
+ASYNC_callback_fn                       datatype
 BIO_ADDR                                datatype
 BIO_ADDRINFO                            datatype
 BIO_callback_fn                         datatype
@@ -37,7 +39,6 @@ GEN_SESSION_CB                          datatype
 OPENSSL_Applink                         external
 OPENSSL_CTX                             datatype
 NAMING_AUTHORITY                        datatype
-OCSP_parse_url                          define
 OSSL_HTTP_bio_cb_t                      datatype
 OSSL_PARAM                              datatype
 OSSL_PROVIDER                           datatype
@@ -68,6 +69,7 @@ RAND_poll_cb                            datatype
 SSL_CTX_allow_early_data_cb_fn          datatype
 SSL_CTX_keylog_cb_func                  datatype
 SSL_allow_early_data_cb_fn              datatype
+SSL_async_callback_fn                   datatype
 SSL_client_hello_cb_fn                  datatype
 SSL_custom_ext_add_cb_ex                datatype
 SSL_custom_ext_free_cb_ex               datatype
@@ -111,9 +113,8 @@ custom_ext_free_cb                      datatype
 custom_ext_parse_cb                     datatype
 pem_password_cb                         datatype
 ssl_ct_validation_cb                    datatype
-ASYNC_callback_fn                       datatype
-SSL_async_callback_fn                   datatype
 #
+ASN1_BIT_STRING_digest                  define
 BIO_append_filename                     define
 BIO_destroy_bio_pair                    define
 BIO_do_accept                           define
@@ -124,6 +125,8 @@ BIO_flush                               define
 BIO_get_accept_name                     define
 BIO_get_accept_port                     define
 BIO_get_accept_ip_family                define
+BIO_get_app_data                        define
+BIO_get_ex_new_index                    define
 BIO_get_peer_name                       define
 BIO_get_peer_port                       define
 BIO_get_bind_mode                       define
@@ -161,6 +164,7 @@ BIO_set_accept_bios                     define
 BIO_set_accept_name                     define
 BIO_set_accept_port                     define
 BIO_set_accept_ip_family                define
+BIO_set_app_data                        define
 BIO_set_bind_mode                       define
 BIO_set_buffer_read_data                define
 BIO_set_buffer_size                     define
@@ -315,6 +319,7 @@ EVP_rc5_32_12_16_cfb                    define
 EVP_seed_cfb                            define
 EVP_sm4_cfb                             define
 OBJ_cleanup                             define deprecated 1.1.0
+OCSP_parse_url                          define
 OPENSSL_FILE                            define
 OPENSSL_FUNC                            define
 OPENSSL_LINE                            define
@@ -366,7 +371,6 @@ OSSL_CMP_LOG_WARNING                    define
 OSSL_CMP_MSTR_HELPER                    define
 OSSL_CMP_MSTR                           define
 OSSL_CMP_P10CR                          define
-ossl_cmp_allow_unprotected_cb_t         datatype
 OSSL_CMP_certConf_cb_t                  datatype
 OSSL_CMP_log_cb_t                       datatype
 OSSL_CMP_severity                       datatype
diff --git a/util/perl/OpenSSL/Util/Pod.pm b/util/perl/OpenSSL/Util/Pod.pm
index ca6d7de2c8..a957655549 100644
--- a/util/perl/OpenSSL/Util/Pod.pm
+++ b/util/perl/OpenSSL/Util/Pod.pm
@@ -185,7 +185,8 @@ sub extract_pod_info {
 
     return ( section => $podinfo{section},
              names => [ @names, @invisible_names ],
-             contents =>  $contents );
+             contents => $contents,
+             filename => $filename );
 }
 
 1;


More information about the openssl-commits mailing list