From: Andrew McNab Date: Fri, 24 Jul 2009 14:26:23 +0000 (+0000) Subject: Sync X-Git-Tag: gridsite-core_R_1_7_4~2 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=3a139ff7bf6f529d6c4ee6fc66a3f26f0caac0cf;p=jra1mw.git Sync --- diff --git a/org.gridsite.core/src/grst_x509.c b/org.gridsite.core/src/grst_x509.c index f2222cc..401b8e6 100644 --- a/org.gridsite.core/src/grst_x509.c +++ b/org.gridsite.core/src/grst_x509.c @@ -597,6 +597,7 @@ static int GRSTx509ChainVomsAdd(GRSTx509Cert **grst_cert, dn_coords[200], fqan_coords[200], time1_coords[200], time2_coords[200], vomscert_coords[200], *voname = NULL, serial_coords[200]; + unsigned char *p; long asn1length; int lasttag=-1, itag, i, j, acnumber = 1, chain_errors = 0, ivomscert, tmp_chain_errors, acissuerserial = -1; @@ -637,21 +638,15 @@ static int GRSTx509ChainVomsAdd(GRSTx509Cert **grst_cert, if (itag > -1) { + p = &asn1string[taglist[itag].start+taglist[itag].headerlength]; + if (taglist[itag].length == 2) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+1] + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x100; + acissuerserial = p[1] + p[0] * 0x100; else if (taglist[itag].length == 3) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+2] + - asn1string[taglist[itag].start+taglist[itag].headerlength+1] * 0x100 + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x10000; + acissuerserial = p[2] + p[1] * 0x100 + p[0] * 0x10000; else if (taglist[itag].length == 4) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+3] + - asn1string[taglist[itag].start+taglist[itag].headerlength+2] * 0x100 + - asn1string[taglist[itag].start+taglist[itag].headerlength+1] * 0x10000 + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x1000000; + acissuerserial = p[3] + p[2] * 0x100 + p[1] * 0x10000 + + p[0] * 0x1000000; } if (acissuerserial != user_cert->serial) @@ -1281,6 +1276,7 @@ int GRSTx509ParseVomsExt(int *lastcred, int maxcreds, size_t credlen, char *asn1string, acissuerdn[200], acvomsdn[200], dn_coords[200], fqan_coords[200], time1_coords[200], time2_coords[200], serial_coords[200]; + unsigned char *p; long asn1length; int lasttag=-1, itag, i, acnumber = 1, acissuerserial = -1; struct GRSTasn1TagList taglist[MAXTAG+1]; @@ -1313,21 +1309,15 @@ int GRSTx509ParseVomsExt(int *lastcred, int maxcreds, size_t credlen, if (itag > -1) { + p = &asn1string[taglist[itag].start+taglist[itag].headerlength]; + if (taglist[itag].length == 2) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+1] + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x100; + acissuerserial = p[1] + p[0] * 0x100; else if (taglist[itag].length == 3) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+2] + - asn1string[taglist[itag].start+taglist[itag].headerlength+1] * 0x100 + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x10000; + acissuerserial = p[2] + p[1] * 0x100 + p[0] * 0x10000; else if (taglist[itag].length == 4) - acissuerserial = - asn1string[taglist[itag].start+taglist[itag].headerlength+3] + - asn1string[taglist[itag].start+taglist[itag].headerlength+2] * 0x100 + - asn1string[taglist[itag].start+taglist[itag].headerlength+1] * 0x10000 + - asn1string[taglist[itag].start+taglist[itag].headerlength+0] * 0x1000000; + acissuerserial = p[3] + p[2] * 0x100 + p[1] * 0x10000 + + p[0] * 0x1000000; } if (acissuerserial != ucserial) continue;