VirtualBox

Ignore:
Timestamp:
Feb 17, 2010 4:29:46 AM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
57788
Message:

NAT: leak in BSD mbuf sync (#3993)

File:
1 edited

Legend:

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

    r26404 r26596  
    152152    struct item *it;
    153153    RTCritSectEnter(&zone->csZone);
    154     if (   (zone->max_items != 0 && zone->cur_items >= zone->max_items)
    155         || (zone->max_items == 0 && !LIST_EMPTY(&zone->free_items))
    156         )
     154    if (!LIST_EMPTY(&zone->free_items))
    157155    {
    158156        /*
     
    184182    zone->cur_items++;
    185183    it->zone = zone;
     184    if (zone->cur_items >= zone->max_items)
     185        LogRel(("NAT: zone(%s) has reached it maximum\n", zone->name));
    186186
    187187    allocated:
     
    369369static void zone_destroy(uma_zone_t zone)
    370370{
     371    struct item *it;
     372    RTCritSectEnter(&zone->csZone);
     373    LogRel(("NAT: zone(nm:%s, used:%d)\n", zone->name, zone->cur_items));
     374    /* freeing */
     375    while (!LIST_EMPTY(&zone->free_items))
     376    {
     377        it = LIST_FIRST(&zone->free_items);
     378        LIST_REMOVE(it, list);
     379        RTMemFree(it);
     380    }
     381    while (!LIST_EMPTY(&zone->used_items))
     382    {
     383        it = LIST_FIRST(&zone->used_items);
     384        LIST_REMOVE(it, list);
     385        RTMemFree(it);
     386    }
     387    RTCritSectLeave(&zone->csZone);
    371388    RTCritSectDelete(&zone->csZone);
    372389    RTMemFree(zone);
Note: See TracChangeset for help on using the changeset viewer.

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