Skip to contentSkip to conversation

ubifs: potential uninitialized variable in truncate_data_node()

PATCH In review Dan Carpenter 3 participants 5 messages Jan 5, 2017 – Jan 6, 2017

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ubifs: potential uninitialized variable in truncate_data_node()

GCC doesn't complain, but my static checker warns that if the data is not compressed and not encrypted then "ret" isn't initialized.

fs/ubifs/journal.c +2 -1
index a459211a1c21..c54f04d88236 100644
@@ -1281,7 +1281,8 @@ static int truncate_data_node(const struct ubifs_info *c, const struct inode *in
 			      int *new_len)
 {
 	void *buf;
-	int err, dlen, compr_type, out_len, old_dlen;
+	int dlen, compr_type, out_len, old_dlen;
+	int err = 0;
 
 	out_len = le32_to_cpu(dn->size);
 	buf = kmalloc(out_len * WORST_COMPR_FACTOR, GFP_NOFS);
#1 lore raw

Hi All,

My appdata partition could not be mounted or where the partition was not able to be used. Anyone can help me to find out the root cause of this. What are the possibilities of this ubifs corruption. Any patched are available to fix this issue.

Error logs:

[    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
[    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
[    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
[    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
[    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
[    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
[    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117

dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new': Structure needs cleaning

Best regards

Raghavan Anurag
RBEI/ETW1

Tel. +91(422)667-4001 | Mobil 9986968950

-----Original Message-----
From: linux-mtd [mailto:[email protected]] On Behalf Of Dan Carpenter
Sent: Thursday, January 05, 2017 6:17 PM
To: Richard Weinberger <[email protected]>; David Gstir <[email protected]>
Cc: [email protected]; [email protected]; Adrian Hunter <[email protected]>; Artem Bityutskiy <[email protected]>
Subject: [patch] ubifs: potential uninitialized variable in truncate_data_node()

GCC doesn't complain, but my static checker warns that if the data is not compressed and not encrypted then "ret" isn't initialized.

fs/ubifs/journal.c +2 -1
@@ -1281,7 +1281,8 @@ static int truncate_data_node(const struct ubifs_info *c, const struct inode *in
 			      int *new_len)
 {
 	void *buf;
-	int err, dlen, compr_type, out_len, old_dlen;
+	int dlen, compr_type, out_len, old_dlen;
+	int err = 0;
 
 	out_len = le32_to_cpu(dn->size);
 	buf = kmalloc(out_len * WORST_COMPR_FACTOR, GFP_NOFS);

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

#2 lore raw

Raghavan Anurag,

Am 05.01.2017 um 13:54 schrieb Anurag Raghavan (RBEI/ETW11):

Quoted 6 lines

Hi All,

My appdata partition could not be mounted or where the partition was not able to be used. Anyone can help me to find out the root cause of this. What are the possibilities of this ubifs corruption. Any patched are available to fix this issue.

Error logs:

Quoted 8 lines
[    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
[    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
[    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
[    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
[    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
[    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
[    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117

dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new': Structure needs cleaning

Why are you hijacking this mail thread?

In your case UBIFS fails because of an ECC error in 0xFF bytes. UBIFS does not expect this and the MTD driver has to make sure that it does not happen.
Is this a recent kernel?

Thanks,
//richard

#3 lore raw
Quoted 14 lines

Hi All,

My appdata partition could not be mounted or where the partition was not able to be used. Anyone can help me to find out the root cause of this. What are the possibilities of this ubifs corruption. Any patched are available to fix this issue.

Error logs:

[    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
[    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
[    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
[    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
[    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
[    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
[    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117
Quoted 2 lines

dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new':
Structure needs cleaning

Best regards

Raghavan Anurag
RBEI/ETW1

Tel. +91(422)667-4001 | Mobil 9986968950

#4 lore raw
In reply to Richard Weinberger

Hi Richard,

I am using the kernel version-30.3.5

Is there any patches available to fix this issue...???

Best regards

Raghavan Anurag
RBEI/ETW1

Tel. +91(422)667-4001 | Mobil 9986968950

-----Original Message-----
From: linux-mtd [mailto:[email protected]] On Behalf Of Richard Weinberger
Sent: Thursday, January 05, 2017 6:42 PM
To: Anurag Raghavan (RBEI/ETW11) <[email protected]>; Dan Carpenter <[email protected]>; David Gstir <[email protected]>
Cc: [email protected]; [email protected]; Adrian Hunter <[email protected]>; Artem Bityutskiy <[email protected]>
Subject: Re: [patch] ubifs: potential uninitialized variable in truncate_data_node()

Raghavan Anurag,

Am 05.01.2017 um 13:54 schrieb Anurag Raghavan (RBEI/ETW11):

Quoted 13 lines

Hi All,

My appdata partition could not be mounted or where the partition was not able to be used. Anyone can help me to find out the root cause of this. What are the possibilities of this ubifs corruption. Any patched are available to fix this issue.

Error logs:

[    1.797141] UBI error: ubi_io_read: error -74 (ECC error) while reading 253952 bytes from PEB 445:8192, read 253952 bytes
[    1.808274] UBIFS error (pid 491): ubifs_scan: corrupt empty space at LEB 489:233760
[    1.816037] UBIFS error (pid 491): ubifs_scanned_corruption: corruption at LEB 489:233760
[    1.828660] UBIFS error (pid 491): ubifs_scan: LEB 489 scanning failed
[    1.835215] UBIFS warning (pid 491): ubifs_ro_mode: switched to read-only mode, error -117
[    1.843502] UBIFS error (pid 491): make_reservation: cannot reserve 58 bytes in jhead 2, error -117
[    1.852569] UBIFS error (pid 491): do_writepage: cannot write page 0 of inode 76584, error -117
Quoted 2 lines

dpkg: error: unable to sync new file '/var/lib/dpkg/arch-new':
Structure needs cleaning

Why are you hijacking this mail thread?

In your case UBIFS fails because of an ECC error in 0xFF bytes.
UBIFS does not expect this and the MTD driver has to make sure that it does not happen. Is this a recent kernel?

Thanks,
//richard

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/