VirtualBox

Changeset 18606 in vbox for trunk


Ignore:
Timestamp:
Apr 1, 2009 4:13:55 PM (16 years ago)
Author:
vboxsync
Message:

slirp.c: leaks in get_dns_addr_domain (hope I fixed it right).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r18584 r18606  
    365365    {
    366366        LogRel(("NAT: error %lu occured on fetching adapters info\n", ret));
     367        RTMemFree(addresses);
    367368        return -1;
    368369    }
     
    384385            {
    385386                LogRel(("NAT: Can't allocate buffer for DNS entry\n"));
     387                RTMemFree(addresses);
    386388                return VERR_NO_MEMORY;
    387389            }
     
    402404            RTUtf16ToUtf8(addr->DnsSuffix, &suffix);
    403405            found = 0;
    404             LIST_FOREACH(dd, &pData->dns_domain_list_head, dd_list) 
    405             {
    406                 if (   dd->dd_pszDomain != NULL 
    407                     && strcmp(dd->dd_pszDomain, suffix) == 0) 
     406            LIST_FOREACH(dd, &pData->dns_domain_list_head, dd_list)
     407            {
     408                if (   dd->dd_pszDomain != NULL
     409                    && strcmp(dd->dd_pszDomain, suffix) == 0)
    408410                {
    409411                    found = 1;
     412                    RTStrFree(suffix);
    410413                    break;
    411414                }
    412415            }
    413             if (found == 0) 
     416            if (found == 0)
    414417            {
    415418                dd = RTMemAllocZ(sizeof(struct dns_domain_entry));
    416419                if (dd == NULL)
    417420                {
    418                     LogRel(("NAT: not enought memory\n"));
     421                    LogRel(("NAT: not enough memory\n"));
     422                    RTStrFree(suffix);
     423                    RTMemFree(addresses);
    419424                    return VERR_NO_MEMORY;
    420                 }   
     425                }
    421426                dd->dd_pszDomain = suffix;
    422427                LogRel(("NAT: adding domain name %s to search list\n", dd->dd_pszDomain));
     
    429434        addr = addr->Next;
    430435    }
     436    RTMemFree(addresses);
    431437    return 0;
    432438}
     
    545551            LIST_FOREACH(dd, &pData->dns_domain_list_head, dd_list)
    546552            {
    547                 if(    tok != NULL 
     553                if(    tok != NULL
    548554                    && strcmp(tok, dd->dd_pszDomain) == 0)
    549555                {
     
    558564                    LogRel(("NAT: not enought memory to add domain list\n"));
    559565                    return VERR_NO_MEMORY;
    560                 }   
     566                }
    561567                dd->dd_pszDomain = RTStrDup(tok);
    562568                LogRel(("NAT: adding domain name %s to search list\n", dd->dd_pszDomain));
     
    589595        LIST_REMOVE(dd, dd_list);
    590596        if (dd->dd_pszDomain != NULL)
    591             RTStrFree(dd->dd_pszDomain); 
     597            RTStrFree(dd->dd_pszDomain);
    592598        RTMemFree(dd);
    593599    }
     
    596602        LIST_REMOVE(dd, dd_list);
    597603        if (dd->dd_pszDomain != NULL)
    598             RTStrFree(dd->dd_pszDomain); 
     604            RTStrFree(dd->dd_pszDomain);
    599605        RTMemFree(dd);
    600606    }
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette