summaryrefslogtreecommitdiff
path: root/util/mkerr.pl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-06-27 13:34:17 +0200
committerRichard Levitte <levitte@openssl.org>2017-06-27 14:49:06 +0200
commit4b2799c13cd94f5bbe26cf848f51e2a45bdb0103 (patch)
tree2f54177699f7f37400deb969581206510556f258 /util/mkerr.pl
parent4b8515baa6edef1a771f9e4e3fbc0395b4a629e8 (diff)
downloadopenssl-new-4b2799c13cd94f5bbe26cf848f51e2a45bdb0103.tar.gz
util/mkerr.pl: allow module names prefixed with OSSL_ or OPENSSL_
To make sure that our symbols don't clash with other libraries, we claim the namespaces OSSL and OPENSSL. Because C doesn't provide namespaces, the only solution is to have them as prefixes on symbols, thus we allow OSSL_ and OPENSSL_ as prefixes. These namespace prefixes are optional for the foreseeable future, and will only be used for new modules as needed on a case by case basis, until further notice. For extra safety, there's an added requirement that module names - apart from the namespace prefix - be at least 2 characters long. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3781)
Diffstat (limited to 'util/mkerr.pl')
-rwxr-xr-xutil/mkerr.pl10
1 files changed, 5 insertions, 5 deletions
diff --git a/util/mkerr.pl b/util/mkerr.pl
index a42794d26a..6bc27c498b 100755
--- a/util/mkerr.pl
+++ b/util/mkerr.pl
@@ -198,14 +198,14 @@ if ( ! $reindex && $statefile ) {
die "Bad line in $statefile:\n$_\n";
}
my $lib = $name;
- $lib =~ s/_.*//;
+ $lib =~ s/^((?:OSSL_|OPENSSL_)?[^_]{2,}).*$/$1/;
$lib = "SSL" if $lib =~ /TLS/;
if ( !defined $errorfile{$lib} ) {
print "Skipping $_";
$skippedstate++;
next;
}
- if ( $name =~ /^[A-Z0-9]+_R_/ ) {
+ if ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_R_/ ) {
die "$lib reason code $code collision at $name\n"
if $rassigned{$lib} =~ /:$code:/;
$rassigned{$lib} .= "$code:";
@@ -213,7 +213,7 @@ if ( ! $reindex && $statefile ) {
$rmax{$lib} = $code if $code > $rmax{$lib};
}
$rcodes{$name} = $code;
- } elsif ( $name =~ /^[A-Z0-9]+_F_/ ) {
+ } elsif ( $name =~ /^(?:OSSL_|OPENSSL_)?[A-Z0-9]{2,}_F_/ ) {
die "$lib function code $code collision at $name\n"
if $fassigned{$lib} =~ /:$code:/;
$fassigned{$lib} .= "$code:";
@@ -378,7 +378,7 @@ foreach my $file ( @source ) {
$func = $1;
}
- if ( /(([A-Z0-9]+)_F_([A-Z0-9_]+))/ ) {
+ if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_F_([A-Z0-9_]+))/ ) {
next unless exists $errorfile{$2};
next if $1 eq "BIO_F_BUFFER_CTX";
$usedfuncs{$1} = 1;
@@ -395,7 +395,7 @@ foreach my $file ( @source ) {
print STDERR " Function $1 = $fcodes{$1}\n"
if $debug;
}
- if ( /(([A-Z0-9]+)_R_[A-Z0-9_]+)/ ) {
+ if ( /(((?:OSSL_|OPENSSL_)?[A-Z0-9]{2,})_R_[A-Z0-9_]+)/ ) {
next unless exists $errorfile{$2};
$usedreasons{$1} = 1;
if ( !exists $rcodes{$1} ) {