diff mbox

block-LDM: One function call less in ldm_validate_tocblocks() after error detection

Message ID 567A6CDB.4030703@users.sourceforge.net (mailing list archive)
State New, archived
Headers show

Commit Message

SF Markus Elfring Dec. 23, 2015, 9:43 a.m. UTC
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Tue, 22 Dec 2015 22:32:07 +0100

This issue was detected by using the Coccinelle software.

Let us return directly if a memory allocation failed.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
 block/partitions/ldm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Julia Lawall Dec. 23, 2015, 10:41 a.m. UTC | #1
On Wed, 23 Dec 2015, SF Markus Elfring wrote:

> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 22 Dec 2015 22:32:07 +0100
>
> This issue was detected by using the Coccinelle software.
>
> Let us return directly if a memory allocation failed.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
>  block/partitions/ldm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/block/partitions/ldm.c b/block/partitions/ldm.c
> index e507cfb..a50385c 100644
> --- a/block/partitions/ldm.c
> +++ b/block/partitions/ldm.c
> @@ -433,7 +433,7 @@ static bool ldm_validate_tocblocks(struct parsed_partitions *state,
>  	tb[1] = kmalloc(sizeof(*tb[1]) * 3, GFP_KERNEL);
>  	if (!tb[1]) {
>  		ldm_crit("Out of memory.");
> -		goto err;
> +		return false;

The ldm_crit, which is just a printk, is also not necessary, because
kmalloc already generates backtrace information on failure.  So you could
clean up the whole thing at once.

julia

>  	}
>  	tb[2] = (struct tocblock*)((u8*)tb[1] + sizeof(*tb[1]));
>  	tb[3] = (struct tocblock*)((u8*)tb[2] + sizeof(*tb[2]));
> --
> 2.6.3
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-block" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
SF Markus Elfring Dec. 23, 2015, 6:02 p.m. UTC | #2
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Wed, 23 Dec 2015 17:32:12 +0100

Several update suggestions were taken into account
from static source code analysis.

Markus Elfring (5):
  One function call less in ldm_validate_tocblocks() after error detection
  Delete extra log messages for memory allocation failures
  One function call less in ldm_partition() after error detection
  Less function calls in ldm_validate_privheads() after error detection
  Fine-tuning for the source code formatting

 block/partitions/ldm.c | 455 +++++++++++++++++++++++++------------------------
 1 file changed, 236 insertions(+), 219 deletions(-)
diff mbox

Patch

diff --git a/block/partitions/ldm.c b/block/partitions/ldm.c
index e507cfb..a50385c 100644
--- a/block/partitions/ldm.c
+++ b/block/partitions/ldm.c
@@ -433,7 +433,7 @@  static bool ldm_validate_tocblocks(struct parsed_partitions *state,
 	tb[1] = kmalloc(sizeof(*tb[1]) * 3, GFP_KERNEL);
 	if (!tb[1]) {
 		ldm_crit("Out of memory.");
-		goto err;
+		return false;
 	}
 	tb[2] = (struct tocblock*)((u8*)tb[1] + sizeof(*tb[1]));
 	tb[3] = (struct tocblock*)((u8*)tb[2] + sizeof(*tb[2]));