]> granicus.if.org Git - openssl/commitdiff
Update from 0.9.7-stable.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 21 Nov 2006 20:14:05 +0000 (20:14 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 21 Nov 2006 20:14:05 +0000 (20:14 +0000)
Improve mkerr.pl header file function name parsing.

CHANGES
util/mkerr.pl

diff --git a/CHANGES b/CHANGES
index 1ce47e3ccd3bf3454bb1a0bc99a00a0413f4791e..0fc1f651f558dbd7fb53caec12c3ce241e80d92b 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,11 @@
 
  Changes between 0.9.8d and 0.9.8e  [XX xxx XXXX]
 
+  *) Load error codes if they are not already present instead of using a
+     static variable. This allows them to be cleanly unloaded and reloaded.
+     Improve header file function name parsing.
+     [Steve Henson]
+
  Changes between 0.9.8c and 0.9.8d  [28 Sep 2006]
 
   *) Introduce limits to prevent malicious keys being able to
index 399b10e1a338081e71fa8bdce2af0e8552fef18b..fac7125ff3f1f6075cf7a1e5c7f2024658118430 100644 (file)
@@ -135,6 +135,8 @@ while (($hdr, $lib) = each %libinc)
 
        print STDERR "                                  \r" if $debug;
         $defnr = 0;
+       # Delete any DECLARE_ macros
+       $def =~ s/DECLARE_\w+\([\w,\s]+\)//gs;
        foreach (split /;/, $def) {
            $defnr++;
            print STDERR "def: $defnr\r" if $debug;
@@ -147,6 +149,9 @@ while (($hdr, $lib) = each %libinc)
            # Skip over recognized non-function declarations
            next if(/typedef\W/ or /DECLARE_STACK_OF/ or /TYPEDEF_.*_OF/);
 
+           # Remove STACK_OF(foo)
+           s/STACK_OF\(\w+\)/void/;
+
            # Reduce argument lists to empty ()
            # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
            while(/\(.*\)/s) {
@@ -595,17 +600,14 @@ if($static) {
 
 ${staticloader}void ERR_load_${lib}_strings(void)
        {
-       static int init=1;
+#ifndef OPENSSL_NO_ERR
 
-       if (init)
+       if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL)
                {
-               init=0;
-#ifndef OPENSSL_NO_ERR
                ERR_load_strings($load_errcode,${lib}_str_functs);
                ERR_load_strings($load_errcode,${lib}_str_reasons);
-#endif
-
                }
+#endif
        }
 EOF
 } else {