lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 21 Jul 2006 08:50:17 +0200 From: Rolf Eike Beer <eike-kernel@...tec.de> To: Panagiotis Issaris <takis@...umba.uhasselt.be> Cc: linux-kernel@...r.kernel.org, len.brown@...el.com, chas@....nrl.navy.mil, miquel@...uba.ar, kkeil@...e.de, benh@...nel.crashing.org, video4linux-list@...hat.com, rmk+mmc@....linux.org.uk, Neela.Kolli@...enio.com, jgarzik@...ox.com, vandrove@...cvut.cz, adaplas@....net, thomas@...ischhofer.net, weissg@...nna.at, philb@....org, linux-pcmcia@...ts.infradead.org, jkmaline@...hut.fi, paulus@...ba.org Subject: Re: [PATCH] drivers: Conversions from kmalloc+memset to k(z|c)alloc. Am Donnerstag, 20. Juli 2006 21:05 schrieb Panagiotis Issaris: > From: Panagiotis Issaris <takis@...aris.org> > > drivers: Conversions from kmalloc+memset to k(z|c)alloc. > --- a/drivers/atm/zatm.c > +++ b/drivers/atm/zatm.c > @@ -603,9 +603,8 @@ static int start_rx(struct atm_dev *dev) > DPRINTK("start_rx\n"); > zatm_dev = ZATM_DEV(dev); > size = sizeof(struct atm_vcc *)*zatm_dev->chans; > - zatm_dev->rx_map = (struct atm_vcc **) kmalloc(size,GFP_KERNEL); > + zatm_dev->rx_map = kzalloc(size,GFP_KERNEL); Space after comma. > @@ -951,9 +950,8 @@ static int open_tx_first(struct atm_vcc > skb_queue_head_init(&zatm_vcc->tx_queue); > init_waitqueue_head(&zatm_vcc->tx_wait); > /* initialize ring */ > - zatm_vcc->ring = kmalloc(RING_SIZE,GFP_KERNEL); > + zatm_vcc->ring = kzalloc(RING_SIZE,GFP_KERNEL); Same here > @@ -443,12 +442,11 @@ int con_clear_unimap(struct vc_data *vc, > p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc; > if (p && p->readonly) return -EIO; > if (!p || --p->refcount) { > - q = (struct uni_pagedir *)kmalloc(sizeof(*p), GFP_KERNEL); > + q = kzalloc(sizeof(*p), GFP_KERNEL); > if (!q) { > if (p) p->refcount++; > return -ENOMEM; > } > - memset(q, 0, sizeof(*q)); > q->refcount=1; > *vc->vc_uni_pagedir_loc = (unsigned long)q; > } else { This one still changes the way the code works. Before your patch *p will be always zeroed out. Now if p is there before it will keep it's contents. > diff --git a/drivers/char/keyboard.c b/drivers/char/keyboard.c > index 056ebe8..c39d9bc 100644 > --- a/drivers/char/keyboard.c > +++ b/drivers/char/keyboard.c > @@ -1298,9 +1298,9 @@ static struct input_handle *kbd_connect( > if (i == BTN_MISC && !test_bit(EV_SND, dev->evbit)) > return NULL; > > - if (!(handle = kmalloc(sizeof(struct input_handle), GFP_KERNEL))) > + handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL); > + if (!handle) > return NULL; sizeof(*handle)? > diff --git a/drivers/char/random.c b/drivers/char/random.c > index 4c3a5ca..0b520f6 100644 > --- a/drivers/char/random.c > +++ b/drivers/char/random.c > @@ -911,9 +911,8 @@ void rand_initialize_irq(int irq) > * If kmalloc returns null, we just won't use that entropy > * source. > */ > - state = kmalloc(sizeof(struct timer_rand_state), GFP_KERNEL); > + state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL); sizeof(*state)? > @@ -926,9 +925,8 @@ void rand_initialize_disk(struct gendisk > * If kmalloc returns null, we just won't use that entropy > * source. > */ > - state = kmalloc(sizeof(struct timer_rand_state), GFP_KERNEL); > + state = kzalloc(sizeof(struct timer_rand_state), GFP_KERNEL); Also here. > diff --git a/drivers/char/sx.c b/drivers/char/sx.c > index e1cd2bc..22b240c 100644 > --- a/drivers/char/sx.c > +++ b/drivers/char/sx.c > @@ -2278,18 +2278,6 @@ static int sx_init_drivers(void) > return 0; > } > > - > -static void * ckmalloc (int size) > -{ > - void *p; > - > - p = kmalloc(size, GFP_KERNEL); > - if (p) > - memset(p, 0, size); > - return p; > -} > - > - > static int sx_init_portstructs (int nboards, int nports) > { > struct sx_board *board; > @@ -2302,7 +2290,7 @@ static int sx_init_portstructs (int nboa > > /* Many drivers statically allocate the maximum number of ports > There is no reason not to allocate them dynamically. Is there? -- REW > */ - sx_ports = ckmalloc(nports * sizeof (struct sx_port)); > + sx_ports = kcalloc(nports, sizeof (struct sx_port), GFP_KERNEL); No space before opening brace. > @@ -1477,7 +1466,7 @@ static int init_dev(struct tty_driver *d > tp = o_tp = NULL; > ltp = o_ltp = NULL; > > - tty = alloc_tty_struct(); > + tty = kzalloc(sizeof(struct tty_struct), GFP_KERNEL); sizeof(*tty)? > @@ -1502,15 +1491,13 @@ static int init_dev(struct tty_driver *d > } > > if (!*ltp_loc) { > - ltp = (struct termios *) kmalloc(sizeof(struct termios), > - GFP_KERNEL); > + ltp = kzalloc(sizeof(struct termios), GFP_KERNEL); sizeof(*ltp)? [more of this snipped] > diff --git a/drivers/isdn/hisax/hfc_usb.c b/drivers/isdn/hisax/hfc_usb.c > index b5e571a..8373ce4 100644 > --- a/drivers/isdn/hisax/hfc_usb.c > +++ b/drivers/isdn/hisax/hfc_usb.c > @@ -1479,11 +1479,9 @@ #endif > /* found a valid USB Ta Endpint config */ > if (small_match != 0xffff) { > iface = iface_used; > - if (! > - (context = > - kmalloc(sizeof(hfcusb_data), GFP_KERNEL))) > + context = kzalloc(sizeof(hfcusb_data), GFP_KERNEL); > + if (!context) > return (-ENOMEM); /* got no mem */ while you're at it. can you please change it to "return -ENOMEM;"? The comment does not help anyone and we return without braces. > diff --git a/drivers/media/video/planb.c b/drivers/media/video/planb.c > index 3484e36..25f8485 100644 > --- a/drivers/media/video/planb.c > +++ b/drivers/media/video/planb.c > @@ -353,9 +353,9 @@ static int planb_prepare_open(struct pla > * PLANB_DUMMY)*sizeof(struct dbdma_cmd) > +(PLANB_MAXLINES*((PLANB_MAXPIXELS+7)& ~7))/8 > +MAX_GBUFFERS*sizeof(unsigned int); > - if ((pb->priv_space = kmalloc (size, GFP_KERNEL)) == 0) > + pb->priv_space = kzalloc (size, GFP_KERNEL); space [...] Eike - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists