diff mbox

ext4: don't leave i_crtime.tv_sec uninitialized

Message ID 1392597082-7483-1-git-send-email-tytso@mit.edu
State Accepted, archived
Headers show

Commit Message

Theodore Ts'o Feb. 17, 2014, 12:31 a.m. UTC
If the i_crtime field is not present in the inode, don't leave the
field uninitialized.

Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
---
 fs/ext4/ext4.h | 2 ++
 1 file changed, 2 insertions(+)

Comments

Vegard Nossum Feb. 17, 2014, 10:31 a.m. UTC | #1
On 02/17/2014 01:31 AM, Theodore Ts'o wrote:
> If the i_crtime field is not present in the inode, don't leave the
> field uninitialized.
>
> Reported-by: Vegard Nossum <vegard.nossum@oracle.com>
> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
> ---
>   fs/ext4/ext4.h | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
> index ece5556..d3a534f 100644
> --- a/fs/ext4/ext4.h
> +++ b/fs/ext4/ext4.h
> @@ -771,6 +771,8 @@ do {									       \
>   	if (EXT4_FITS_IN_INODE(raw_inode, einode, xtime))		       \
>   		(einode)->xtime.tv_sec = 				       \
>   			(signed)le32_to_cpu((raw_inode)->xtime);	       \
> +	else								       \
> +		(einode)->xtime.tv_sec = 0;				       \
>   	if (EXT4_FITS_IN_INODE(raw_inode, einode, xtime ## _extra))	       \
>   		ext4_decode_extra_time(&(einode)->xtime,		       \
>   				       raw_inode->xtime ## _extra);	       \
>

This fixes everything for me, thanks!


Vegard
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" 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/fs/ext4/ext4.h b/fs/ext4/ext4.h
index ece5556..d3a534f 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -771,6 +771,8 @@  do {									       \
 	if (EXT4_FITS_IN_INODE(raw_inode, einode, xtime))		       \
 		(einode)->xtime.tv_sec = 				       \
 			(signed)le32_to_cpu((raw_inode)->xtime);	       \
+	else								       \
+		(einode)->xtime.tv_sec = 0;				       \
 	if (EXT4_FITS_IN_INODE(raw_inode, einode, xtime ## _extra))	       \
 		ext4_decode_extra_time(&(einode)->xtime,		       \
 				       raw_inode->xtime ## _extra);	       \