mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
dirmngr: Do not use MAXDNAME.
* dirmngr/dns-stuff.c (getsrv): Replace MAXDNAME. * dirmngr/dns-stuff.h (MAXDNAME): Remove. (struct srventry): Use a fixed value instead of MAXDNAME. * dirmngr/http.c (connect_server): Use DIMof instead of MAXDNAME. Malloc a helper array. -- Depending on the order of included headers it might be that we allocate the array with a different size than what we test against in another module. To make it more robust we use the actual known size of checking. A better would be to use a linked list and avoid these large arrays. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
41bb01ae79
commit
e03a4a94bb
3 changed files with 20 additions and 15 deletions
|
@ -651,7 +651,7 @@ getsrv (const char *name,struct srventry **list)
|
|||
struct srventry *srv = NULL;
|
||||
struct srventry *newlist;
|
||||
|
||||
if (strlen (answer->rrs.srvha[count].ha.host) >= MAXDNAME)
|
||||
if (strlen (answer->rrs.srvha[count].ha.host) >= sizeof srv->target)
|
||||
{
|
||||
log_info ("hostname in SRV record too long - skipped\n");
|
||||
continue;
|
||||
|
@ -747,7 +747,7 @@ getsrv (const char *name,struct srventry **list)
|
|||
/* Get the name. 2782 doesn't allow name compression, but
|
||||
dn_expand still works to pull the name out of the
|
||||
packet. */
|
||||
rc = dn_expand(answer,emsg,pt,srv->target,MAXDNAME);
|
||||
rc = dn_expand(answer,emsg,pt,srv->target, sizeof srv->target);
|
||||
if (rc == 1 && srv->target[0] == 0) /* "." */
|
||||
{
|
||||
xfree(*list);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue