diff mbox

btrfs-progs: btrfs-image.c: Added NULL pointer check.

Message ID 1343385254-8299-1-git-send-email-nasastry@in.ibm.com (mailing list archive)
State New, archived
Headers show

Commit Message

Nageswara R Sastry July 27, 2012, 10:34 a.m. UTC
Check for the return value of 'open_ctree()' before dereferencing it.

Signed-off-by: Nageswara R Sastry <nasastry@in.ibm.com>
---
 btrfs-image.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Stefan Behrens July 27, 2012, 11:09 a.m. UTC | #1
On Fri, 27 Jul 2012 16:04:14 +0530, Nageswara R Sastry wrote:
> Check for the return value of 'open_ctree()' before dereferencing it.
> 
> Signed-off-by: Nageswara R Sastry <nasastry@in.ibm.com>
> ---
>  btrfs-image.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/btrfs-image.c b/btrfs-image.c
> index f2bbcc8..2a33a55 100644
> --- a/btrfs-image.c
> +++ b/btrfs-image.c
> @@ -491,6 +491,7 @@ static int create_metadump(const char *input, FILE *out, int num_threads,
>  	int ret;
>  
>  	root = open_ctree(input, 0, 0);
> +	BUG_ON(!root);
>  	BUG_ON(root->nodesize != root->leafsize);
>  
>  	ret = metadump_init(&metadump, root, out, num_threads,
> 

In general, explicit BUG_ON() checks for a NULL pointer are not added to
the Linux kernel if the pointer is dereferenced afterwards. When the
NULL area is accessed, you get a general protection fault including the
call trace and a dump of all registers. Adding explicit BUG_ON(ptr !=
NULL) adds overhead without bringing any additional information.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Stefan Behrens July 27, 2012, 11:40 a.m. UTC | #2
On Fri, 27 Jul 2012 13:09:53 +0200, Stefan Behrens wrote:
> On Fri, 27 Jul 2012 16:04:14 +0530, Nageswara R Sastry wrote:
>> Check for the return value of 'open_ctree()' before dereferencing it.
>>
>> Signed-off-by: Nageswara R Sastry <nasastry@in.ibm.com>
>> ---
>>  btrfs-image.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/btrfs-image.c b/btrfs-image.c
>> index f2bbcc8..2a33a55 100644
>> --- a/btrfs-image.c
>> +++ b/btrfs-image.c
>> @@ -491,6 +491,7 @@ static int create_metadump(const char *input, FILE *out, int num_threads,
>>  	int ret;
>>  
>>  	root = open_ctree(input, 0, 0);
>> +	BUG_ON(!root);
>>  	BUG_ON(root->nodesize != root->leafsize);
>>  
>>  	ret = metadump_init(&metadump, root, out, num_threads,
>>
> 
> In general, explicit BUG_ON() checks for a NULL pointer are not added to
> the Linux kernel if the pointer is dereferenced afterwards. When the
> NULL area is accessed, you get a general protection fault including the
> call trace and a dump of all registers. Adding explicit BUG_ON(ptr !=
> NULL) adds overhead without bringing any additional information.

Please ignore and excuse my noise from before. Your patch is for
btrfs-progs, not for the kernel.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/btrfs-image.c b/btrfs-image.c
index f2bbcc8..2a33a55 100644
--- a/btrfs-image.c
+++ b/btrfs-image.c
@@ -491,6 +491,7 @@  static int create_metadump(const char *input, FILE *out, int num_threads,
 	int ret;
 
 	root = open_ctree(input, 0, 0);
+	BUG_ON(!root);
 	BUG_ON(root->nodesize != root->leafsize);
 
 	ret = metadump_init(&metadump, root, out, num_threads,