fix some memory leaks.
PATCH v2 2/2 fix some memory leaks.
V2 for this patch, only the memory leaks fix. Thanks Kay.
From e550d7b79b7a8b1b4037d063e9630b3130005d80 Mon Sep 17 00:00:00 2001
From: Yin Kangkai <[email protected]>
Date: Mon, 2 Aug 2010 18:25:32 +0800
Subject: [PATCH] Fix some memory leaks.
Signed-off-by Yin Kangkai <[email protected]>
--- udev/udev-rules.c | 15 ++++++++++++--- udev/udevd.c | 4 +++- 2 files changed, 15 insertions(+), 4 deletions(-)
udev/udev-rules.c +12 -3
@@ -1761,13 +1761,18 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)/* init token array and string buffer */ rules->tokens =malloc (PREALLOC_TOKEN *sizeof (struct token )); -if (rules->tokens =NULL ) +if (rules->tokens =NULL ) { +free (rules);return NULL ; + } rules->token_max =PREALLOC_TOKEN ; rules->buf =malloc (PREALLOC_STRBUF ); -if (rules->buf =NULL ) +if (rules->buf =NULL ) { +free (rules->tokens); +free (rules);return NULL ; + } rules->buf_max =PREALLOC_STRBUF ;/* offset 0 is always '\0' */ rules->buf[0 ] ='\0' ;
@@ -1776,8 +1781,12 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) rules->token_max * sizeof(struct token), rules->token_max, sizeof(struct token), rules->buf_max); rules->trie_nodes =malloc (PREALLOC_TRIE *sizeof (struct trie_node )); -if (rules->trie_nodes =NULL ) +if (rules->trie_nodes =NULL ) { +free (rules->buf); +free (rules->tokens); +free (rules);return NULL ; + } rules->trie_nodes_max =PREALLOC_TRIE ;/* offset 0 is the trie root, with an empty string */ memset (rules->trie_nodes,0x00 ,sizeof (struct trie_node ));
udev/udevd.c +3 -1
@@ -227,8 +227,10 @@ static void worker_new(struct event *event)udev_monitor_enable_receiving (worker_monitor); worker =calloc (1 ,sizeof (struct worker )); -if (worker =NULL ) +if (worker =NULL ) { +udev_monitor_unref (worker_monitor);return ; + }/* worker + event reference */ worker->refcount =2 ; worker->udev = event->udev;
Signature · 1 line
1.6.5
Kay Sievers
AppliedQuoted 1 line · Yin Kangkai
V2 for this patch, only the memory leaks fix. Thanks Kay.
Applied.
I think the malloc()+memset() -> calloc conversion you did was fine and we should do that. Only the calloc() where it is not needed we should drop. :)
Thanks,
Kay