aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-23 22:38:48 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-23 22:38:48 -0800
commit93b7274344ee2c0d6cbf867869c5129e8a521583 (patch)
tree91fdf4f7f22fa6e01e68b6f28ec3036ab6e03a86
parent495f9df08f2daa3d3557650beb65f2de120d2c7b (diff)
downloadtinyrad-93b7274344ee2c0d6cbf867869c5129e8a521583.tar.gz
tinyrad-93b7274344ee2c0d6cbf867869c5129e8a521583.tar.bz2
tinyrad-93b7274344ee2c0d6cbf867869c5129e8a521583.tar.xz
tinyrad-93b7274344ee2c0d6cbf867869c5129e8a521583.zip
libtinyrad: adding missing calls to freeaddrinfo()
-rw-r--r--lib/libtinyrad/lurl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/libtinyrad/lurl.c b/lib/libtinyrad/lurl.c
index 98c542d..501c815 100644
--- a/lib/libtinyrad/lurl.c
+++ b/lib/libtinyrad/lurl.c
@@ -612,7 +612,10 @@ tinyrad_urldesc_resolve(
612 if ((sasp = trudp->trud_sockaddrs) == NULL) 612 if ((sasp = trudp->trud_sockaddrs) == NULL)
613 { 613 {
614 if ((sasp = malloc(sizeof(struct sockaddr_storage *))) == NULL) 614 if ((sasp = malloc(sizeof(struct sockaddr_storage *))) == NULL)
615 {
616 freeaddrinfo(res);
615 return(TRAD_ENOMEM); 617 return(TRAD_ENOMEM);
618 };
616 sasp[0] = NULL; 619 sasp[0] = NULL;
617 trudp->trud_sockaddrs = sasp; 620 trudp->trud_sockaddrs = sasp;
618 sas_len = 0; 621 sas_len = 0;
@@ -624,13 +627,19 @@ tinyrad_urldesc_resolve(
624 { 627 {
625 size = sizeof(struct sockaddr_storage *) * (sas_len+2); 628 size = sizeof(struct sockaddr_storage *) * (sas_len+2);
626 if ((ptr = realloc(sasp, size)) == NULL) 629 if ((ptr = realloc(sasp, size)) == NULL)
630 {
631 freeaddrinfo(res);
627 return(TRAD_ENOMEM); 632 return(TRAD_ENOMEM);
633 };
628 sasp = ptr; 634 sasp = ptr;
629 trudp->trud_sockaddrs = ptr; 635 trudp->trud_sockaddrs = ptr;
630 sasp[sas_len+1] = NULL; 636 sasp[sas_len+1] = NULL;
631 637
632 if ((sasp[sas_len] = malloc(sizeof(struct sockaddr_storage))) == NULL) 638 if ((sasp[sas_len] = malloc(sizeof(struct sockaddr_storage))) == NULL)
639 {
640 freeaddrinfo(res);
633 return(TRAD_ENOMEM); 641 return(TRAD_ENOMEM);
642 };
634 memset(sasp[sas_len], 0, sizeof(struct sockaddr_storage)); 643 memset(sasp[sas_len], 0, sizeof(struct sockaddr_storage));
635 memcpy(sasp[sas_len], next->ai_addr, next->ai_addrlen); 644 memcpy(sasp[sas_len], next->ai_addr, next->ai_addrlen);
636 645