public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] opensm/osm_console.c: fix memory and file descriptor leaks
@ 2010-09-07 15:12 Yevgeny Kliteynik
       [not found] ` <4C86567A.5060400-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Yevgeny Kliteynik @ 2010-09-07 15:12 UTC (permalink / raw)
  To: Sasha Khapyorsky, Linux RDMA


Signed-off-by: Yevgeny Kliteynik <kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
---
 opensm/opensm/osm_console.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
index bc7bea3..29a6c83 100644
--- a/opensm/opensm/osm_console.c
+++ b/opensm/opensm/osm_console.c
@@ -1302,12 +1302,13 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
 	/* Check we have at least one expression to match */
 	if (p_head_regexp == NULL) {
 		fprintf(out, "No valid expression provided. Aborting\n");
+		goto Exit;
 		return;
 	}

 	if (p_osm->sm.p_subn->need_update != 0) {
 		fprintf(out, "Subnet is not ready yet. Try again later\n");
-		return;
+		goto Free_and_exit;
 	}

 	/* Subnet doesn't need to be updated so we can carry on */
@@ -1333,14 +1334,16 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
 	}

 	CL_PLOCK_RELEASE(p_osm->sm.p_lock);
-	if (output != out)
-		fclose(output);

+Free_and_exit:
 	for (; p_head_regexp; p_head_regexp = p_regexp) {
 		p_regexp = p_head_regexp->next;
 		regfree(&p_head_regexp->exp);
 		free(p_head_regexp);
 	}
+Exit:
+	if (output != out)
+		fclose(output);
 }

 static void help_dump_portguid(FILE * out, int detail)
-- 
1.6.2.4

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] opensm/osm_console.c: fix memory and file descriptor leaks
       [not found] ` <4C86567A.5060400-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
@ 2010-09-07 15:20   ` Ira Weiny
       [not found]     ` <20100907082047.3b6be681.weiny2-i2BcT+NCU+M@public.gmane.org>
  0 siblings, 1 reply; 3+ messages in thread
From: Ira Weiny @ 2010-09-07 15:20 UTC (permalink / raw)
  To: kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org
  Cc: Yevgeny Kliteynik, Sasha Khapyorsky, Linux RDMA

Hi Yevgeny,

On Tue, 7 Sep 2010 08:12:58 -0700
Yevgeny Kliteynik <kliteyn-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org> wrote:

> 
> Signed-off-by: Yevgeny Kliteynik <kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
> ---
>  opensm/opensm/osm_console.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
> index bc7bea3..29a6c83 100644
> --- a/opensm/opensm/osm_console.c
> +++ b/opensm/opensm/osm_console.c
> @@ -1302,12 +1302,13 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>  	/* Check we have at least one expression to match */
>  	if (p_head_regexp == NULL) {
>  		fprintf(out, "No valid expression provided. Aborting\n");
> +		goto Exit;
>  		return;

While you are at it, shouldn't you remove the return here as well?

Ira

>  	}
> 
>  	if (p_osm->sm.p_subn->need_update != 0) {
>  		fprintf(out, "Subnet is not ready yet. Try again later\n");
> -		return;
> +		goto Free_and_exit;
>  	}
> 
>  	/* Subnet doesn't need to be updated so we can carry on */
> @@ -1333,14 +1334,16 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>  	}
> 
>  	CL_PLOCK_RELEASE(p_osm->sm.p_lock);
> -	if (output != out)
> -		fclose(output);
> 
> +Free_and_exit:
>  	for (; p_head_regexp; p_head_regexp = p_regexp) {
>  		p_regexp = p_head_regexp->next;
>  		regfree(&p_head_regexp->exp);
>  		free(p_head_regexp);
>  	}
> +Exit:
> +	if (output != out)
> +		fclose(output);
>  }
> 
>  static void help_dump_portguid(FILE * out, int detail)
> -- 
> 1.6.2.4
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at  http://*vger.kernel.org/majordomo-info.html
> 


-- 
Ira Weiny
Math Programmer/Computer Scientist
Lawrence Livermore National Lab
925-423-8008
weiny2-i2BcT+NCU+M@public.gmane.org
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] opensm/osm_console.c: fix memory and file descriptor leaks
       [not found]     ` <20100907082047.3b6be681.weiny2-i2BcT+NCU+M@public.gmane.org>
@ 2010-09-07 15:32       ` Yevgeny Kliteynik
  0 siblings, 0 replies; 3+ messages in thread
From: Yevgeny Kliteynik @ 2010-09-07 15:32 UTC (permalink / raw)
  To: Ira Weiny; +Cc: Yevgeny Kliteynik, Sasha Khapyorsky, Linux RDMA

On 07-Sep-10 6:20 PM, Ira Weiny wrote:
> Hi Yevgeny,
> 
> On Tue, 7 Sep 2010 08:12:58 -0700
> Yevgeny Kliteynik<kliteyn-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>  wrote:
> 
>>
>> Signed-off-by: Yevgeny Kliteynik<kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
>> ---
>>   opensm/opensm/osm_console.c |    9 ++++++---
>>   1 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/opensm/opensm/osm_console.c b/opensm/opensm/osm_console.c
>> index bc7bea3..29a6c83 100644
>> --- a/opensm/opensm/osm_console.c
>> +++ b/opensm/opensm/osm_console.c
>> @@ -1302,12 +1302,13 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>>   	/* Check we have at least one expression to match */
>>   	if (p_head_regexp == NULL) {
>>   		fprintf(out, "No valid expression provided. Aborting\n");
>> +		goto Exit;
>>   		return;
> 
> While you are at it, shouldn't you remove the return here as well?

Yep :)

-- Yevgeny
 
> Ira
> 
>>   	}
>>
>>   	if (p_osm->sm.p_subn->need_update != 0) {
>>   		fprintf(out, "Subnet is not ready yet. Try again later\n");
>> -		return;
>> +		goto Free_and_exit;
>>   	}
>>
>>   	/* Subnet doesn't need to be updated so we can carry on */
>> @@ -1333,14 +1334,16 @@ static void dump_portguid_parse(char **p_last, osm_opensm_t * p_osm, FILE * out)
>>   	}
>>
>>   	CL_PLOCK_RELEASE(p_osm->sm.p_lock);
>> -	if (output != out)
>> -		fclose(output);
>>
>> +Free_and_exit:
>>   	for (; p_head_regexp; p_head_regexp = p_regexp) {
>>   		p_regexp = p_head_regexp->next;
>>   		regfree(&p_head_regexp->exp);
>>   		free(p_head_regexp);
>>   	}
>> +Exit:
>> +	if (output != out)
>> +		fclose(output);
>>   }
>>
>>   static void help_dump_portguid(FILE * out, int detail)
>> -- 
>> 1.6.2.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> More majordomo info at  http://*vger.kernel.org/majordomo-info.html
>>
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-09-07 15:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-07 15:12 [PATCH] opensm/osm_console.c: fix memory and file descriptor leaks Yevgeny Kliteynik
     [not found] ` <4C86567A.5060400-VPRAkNaXOzVS1MOuV/RT9w@public.gmane.org>
2010-09-07 15:20   ` Ira Weiny
     [not found]     ` <20100907082047.3b6be681.weiny2-i2BcT+NCU+M@public.gmane.org>
2010-09-07 15:32       ` Yevgeny Kliteynik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox