X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=ms%2Fuplink-common.pl;fp=ms%2Fuplink-common.pl;h=1d20e6e03ed256c34b1a1c9bbebda5e8250e9263;hb=4c048211f19d587133d4d688f5b1045a0bd4cb15;hp=0000000000000000000000000000000000000000;hpb=b94551e823599dee6c47dd8a60c1be416b404592;p=oweals%2Fopenssl.git diff --git a/ms/uplink-common.pl b/ms/uplink-common.pl new file mode 100755 index 0000000000..1d20e6e03e --- /dev/null +++ b/ms/uplink-common.pl @@ -0,0 +1,22 @@ +#!/usr/bin/env perl +# +# pull APPLINK_MAX value from applink.c... +$applink_c=$0; +$applink_c=~s|[^/\\]+$||g; +$applink_c.="applink.c"; +open(INPUT,$applink_c) || die "can't open $applink_c: $!"; +@max=grep {/APPLINK_MAX\s+(\d+)/} ; +close(INPUT); +($#max==0) or die "can't find APPLINK_MAX in $applink_c"; + +$max[0]=~/APPLINK_MAX\s+(\d+)/; +$N=$1; # number of entries in OPENSSL_UplinkTable not including + # OPENSSL_UplinkTable[0], which contains this value... + +1; + +# Idea is to fill the OPENSSL_UplinkTable with pointers to stubs +# which invoke 'void OPENSSL_Uplink (ULONG_PTR *table,int index)'; +# and then dereference themselves. Latter shall result in endless +# loop *unless* OPENSSL_Uplink does not replace 'table[index]' with +# something else, e.g. as 'table[index]=unimplemented;'...