diff options
| -rw-r--r-- | lib/libtinyrad/lurl.c | 9 |
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 | ||
