summaryrefslogtreecommitdiffstats
path: root/crypto/objects/obj_dat.pl
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2000-08-06 18:43:32 +0000
committerDr. Stephen Henson <steve@openssl.org>2000-08-06 18:43:32 +0000
commitd4fbe3182df4425d5a382c217df3ad59cb25a180 (patch)
tree1e11ad08332270404819cae078afe40e76a54c8e /crypto/objects/obj_dat.pl
parent5584fa1709585ee6d7e4f20551a71077f0e36699 (diff)
Fix for bad sorting of object names.
Add warning print out if duplicate names found: should end up as a fatal error but a warning for now until they problems are fixed...
Diffstat (limited to 'crypto/objects/obj_dat.pl')
-rw-r--r--crypto/objects/obj_dat.pl43
1 files changed, 35 insertions, 8 deletions
diff --git a/crypto/objects/obj_dat.pl b/crypto/objects/obj_dat.pl
index e6e3c3b9c0..11066df680 100644
--- a/crypto/objects/obj_dat.pl
+++ b/crypto/objects/obj_dat.pl
@@ -46,10 +46,28 @@ while (<IN>)
next unless /^\#define\s+(\S+)\s+(.*)$/;
$v=$1;
$d=$2;
+ $d =~ s/^\"//;
+ $d =~ s/\"$//;
if ($v =~ /^SN_(.*)$/)
- { $sn{$1}=$d; }
+ {
+ if(defined $snames{$d})
+ {
+ print "WARNING: Duplicate short name \"$d\"\n";
+ }
+ else
+ { $snames{$d} = "X"; }
+ $sn{$1}=$d;
+ }
elsif ($v =~ /^LN_(.*)$/)
- { $ln{$1}=$d; }
+ {
+ if(defined $lnames{$d})
+ {
+ print "WARNING: Duplicate long name \"$d\"\n";
+ }
+ else
+ { $lnames{$d} = "X"; }
+ $ln{$1}=$d;
+ }
elsif ($v =~ /^NID_(.*)$/)
{ $nid{$d}=$1; }
elsif ($v =~ /^OBJ_(.*)$/)
@@ -78,11 +96,20 @@ for ($i=0; $i<$n; $i++)
{
$sn=defined($sn{$nid{$i}})?"$sn{$nid{$i}}":"NULL";
$ln=defined($ln{$nid{$i}})?"$ln{$nid{$i}}":"NULL";
- $sn=$ln if ($sn eq "NULL");
- $ln=$sn if ($ln eq "NULL");
+
+ if ($sn eq "NULL") {
+ $sn=$ln;
+ $sn{$nid{$i}} = $ln;
+ }
+
+ if ($ln eq "NULL") {
+ $ln=$sn;
+ $ln{$nid{$i}} = $sn;
+ }
+
$out ="{";
- $out.=$sn;
- $out.=",".$ln;
+ $out.="\"$sn\"";
+ $out.=","."\"$ln\"";
$out.=",NID_$nid{$i},";
if (defined($obj{$nid{$i}}))
{
@@ -117,13 +144,13 @@ for ($i=0; $i<$n; $i++)
@a=grep(defined($sn{$nid{$_}}),0 .. $n);
foreach (sort { $sn{$nid{$a}} cmp $sn{$nid{$b}} } @a)
{
- push(@sn,sprintf("&(nid_objs[%2d]),/* $sn{$nid{$_}} */\n",$_));
+ push(@sn,sprintf("&(nid_objs[%2d]),/* \"$sn{$nid{$_}}\" */\n",$_));
}
@a=grep(defined($ln{$nid{$_}}),0 .. $n);
foreach (sort { $ln{$nid{$a}} cmp $ln{$nid{$b}} } @a)
{
- push(@ln,sprintf("&(nid_objs[%2d]),/* $ln{$nid{$_}} */\n",$_));
+ push(@ln,sprintf("&(nid_objs[%2d]),/* \"$ln{$nid{$_}}\" */\n",$_));
}
@a=grep(defined($obj{$nid{$_}}),0 .. $n);