Merge "libsparse: use strcmp and validate last_used pointer"

This commit is contained in:
Mark Salyzyn 2015-08-21 14:26:07 +00:00 committed by Gerrit Code Review
commit 25967bbccb

View file

@ -221,7 +221,8 @@ static int merge_bb(struct backed_block_list *bbl,
}
break;
case BACKED_BLOCK_FILE:
if (a->file.filename != b->file.filename ||
/* Already make sure b->type is BACKED_BLOCK_FILE */
if (strcmp(a->file.filename, b->file.filename) ||
a->file.offset + a->len != b->file.offset) {
return -EINVAL;
}
@ -279,7 +280,10 @@ static int queue_bb(struct backed_block_list *bbl, struct backed_block *new_bb)
}
merge_bb(bbl, new_bb, new_bb->next);
merge_bb(bbl, bb, new_bb);
if (!merge_bb(bbl, bb, new_bb)) {
/* new_bb destroyed, point to retained as last_used */
bbl->last_used = bb;
}
return 0;
}