Changeset 29936


Ignore:
Timestamp:
2012-01-28T14:52:37+01:00 (6 years ago)
Author:
hauke
Message:

switch: fix some memory leaks in switch_parse_vlan()

Location:
trunk/package/switch/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/switch/src/switch-adm.c

    r27904 r29936  
    342342        adm_wreg(0x13 + nr, (__u16) ports); 
    343343 
     344        kfree(c); 
    344345        return 0; 
    345346} 
  • trunk/package/switch/src/switch-core.c

    r27904 r29936  
    342342        int j, u, p, s; 
    343343 
    344         c = kmalloc(sizeof(switch_vlan_config), GFP_KERNEL); 
     344        c = kzalloc(sizeof(switch_vlan_config), GFP_KERNEL); 
    345345        if (!c) 
    346346                return NULL; 
    347         memset(c, 0, sizeof(switch_vlan_config)); 
    348347 
    349348        while (isspace(*buf)) buf++; 
     
    383382                while (isspace(*buf)) buf++; 
    384383        } 
    385         if (*buf != 0) return NULL; 
     384        if (*buf != 0) { 
     385                kfree(c); 
     386                return NULL; 
     387        } 
    386388 
    387389        c->port &= (1 << driver->ports) - 1; 
  • trunk/package/switch/src/switch-robo.c

    r27904 r29936  
    460460                robo_write16(ROBO_ARLIO_PAGE, 0x61 + regoff, nr); 
    461461                robo_write16(ROBO_ARLIO_PAGE, 0x60 + regoff, 1 << 7); 
     462                kfree(c); 
    462463                return 0; 
    463464        } 
     
    474475        } 
    475476 
     477        kfree(c); 
    476478        return 0; 
    477479} 
     
    521523{ 
    522524        switch_driver *d = (switch_driver *) driver; 
    523         switch_vlan_config *c = switch_parse_vlan(d, buf); 
    524525        int j; 
    525526        __u16 val16; 
    526  
    527         if (c == NULL) 
    528                 return -EINVAL; 
    529527 
    530528        /* disable switching */ 
Note: See TracChangeset for help on using the changeset viewer.