Skip to contentSkip to conversation

UBIFS: Add log overlap assertions

PATCH RESEND Applied hujianyang 2 participants 2 messages Jul 30, 2014 – Jul 31, 2014

Subsystems (2)
lore
Share & tools
lore

hujianyang

author
#0 lore raw

PATCH RESEND 1/1 UBIFS: Add log overlap assertions

We use a circle area to record the log nodes in ubifs. This log area should not be overlapped. But after researching the code, I found some conditions may lead log head wraps log ltail. Although we've fixed the problems discovered, there may be some other issues still left.

This patch adds assertions where lhead changes to next leb to make sure ltail is not wrapped.

---
 fs/ubifs/log.c | 2 ++
 1 file changed, 2 insertions(+)
fs/ubifs/log.c +2 -0
index 7e818ec..c14628f 100644
@@ -244,6 +244,7 @@ int ubifs_add_bud_to_log(struct ubifs_info *c, int jhead, int lnum, int offs)
 
 	if (c->lhead_offs > c->leb_size - c->ref_node_alsz) {
 		c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
+		ubifs_assert(c->lhead_lnum != c->ltail_lnum);
 		c->lhead_offs = 0;
 	}
 
@@ -408,6 +409,7 @@ int ubifs_log_start_commit(struct ubifs_info *c, int *ltail_lnum)
 	/* Switch to the next log LEB */
 	if (c->lhead_offs) {
 		c->lhead_lnum = ubifs_next_log_lnum(c, c->lhead_lnum);
+		ubifs_assert(c->lhead_lnum != c->ltail_lnum);
 		c->lhead_offs = 0;
 	}
 
Signature · 1 line
1.8.1.4
#1 lore raw
Quoted 8 lines · hujianyang

We use a circle area to record the log nodes in ubifs. This log area should not be overlapped. But after researching the code, I found some conditions may lead log head wraps log ltail. Although we've fixed the problems discovered, there may be some other issues still left.

This patch adds assertions where lhead changes to next leb to make sure ltail is not wrapped.

Pushed to linux-ubifs.

Signature · 2 lines
Best Regards,
Artem Bityutskiy