Re: NULL pointer dereference in print_daily_error_info

From: Ted Ts'o
Date: Tue Sep 14 2010 - 15:46:55 EST


On Tue, Sep 14, 2010 at 03:51:02PM +0300, Sergey Senozhatsky wrote:
> Hello,
>
> This patch fixes NULL pointer dereference in print_daily_error_info, when
> called
> on unmounted fs (EXT4_SB(sb) returns NULL). Deleting error reporting timer
> in
> ext4_put_super fixes oops.

Good catch! Thanks for the patch. I will include this into ext4
tree, and I will probably push it separately to Linus so that it gets
into 2.6.36, since this is a regresssion.

You didn't add a Signed-off-by: line, which is needed for Developer's
Certification of Origin (see section 1, subsection 16 of
Documentation/SubmittingPatches in the Linux source tree). Can you
send confirmation that it's OK for me to add a Signed-off-by line for
you? Thanks!!

> By the way, isn't print_daily_error_info racy? Is it safe to call
> print_daily_error_info
> (by timer event (softirq)) when we'are remounting fs, etc.?

It should be fine. Remounting doesn't actually change out the struct
superblock. There is a chance that the information might not be fully
complete if an error is printed exactly as the same time as
print_daily_error_info() is run, but I'm not sure it's worth trying to
protect against that race, since the worst that this will mean is a
confusing report in the /var/log/messages file, and the ext4 error
message will be printed right next to it, which will have all of the
information the system administrator will need.

- Ted

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/