mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
* cert.c (get_cert): Properly chase down CNAMEs pointing to CERTs.
This commit is contained in:
parent
846eefaa71
commit
74117cf4d3
@ -1,3 +1,7 @@
|
||||
2005-12-24 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* cert.c (get_cert): Properly chase down CNAMEs pointing to CERTs.
|
||||
|
||||
2005-12-23 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* cert.c, Makefile.am: New code to do DNS CERT queries.
|
||||
|
14
util/cert.c
14
util/cert.c
@ -96,9 +96,6 @@ get_cert(const char *name,size_t max_size,IOBUF *iobuf,char **url)
|
||||
|
||||
type=*pt++ << 8;
|
||||
type|=*pt++;
|
||||
/* We asked for CERT and got something else !? */
|
||||
if(type!=T_CERT)
|
||||
break;
|
||||
|
||||
class=*pt++ << 8;
|
||||
class|=*pt++;
|
||||
@ -113,6 +110,14 @@ get_cert(const char *name,size_t max_size,IOBUF *iobuf,char **url)
|
||||
dlen=*pt++ << 8;
|
||||
dlen|=*pt++;
|
||||
|
||||
/* We asked for CERT and got something else - might be a
|
||||
CNAME, so loop around again. */
|
||||
if(type!=T_CERT)
|
||||
{
|
||||
pt+=dlen;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* The CERT type */
|
||||
ctype=*pt++ << 8;
|
||||
ctype|=*pt++;
|
||||
@ -125,7 +130,7 @@ get_cert(const char *name,size_t max_size,IOBUF *iobuf,char **url)
|
||||
if(ctype==3 && iobuf)
|
||||
{
|
||||
/* PGP type */
|
||||
*iobuf=iobuf_temp_with_content(pt,dlen);
|
||||
*iobuf=iobuf_temp_with_content((char *)pt,dlen);
|
||||
ret=1;
|
||||
break;
|
||||
}
|
||||
@ -136,6 +141,7 @@ get_cert(const char *name,size_t max_size,IOBUF *iobuf,char **url)
|
||||
|
||||
*url=xmalloc(dlen+1);
|
||||
memcpy(*url,pt,dlen);
|
||||
(*url)[dlen]='\0';
|
||||
ret=2;
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user