mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-10 16:58:47 +03:00
Fix reading byte from char params[-1] position
When the ->params string is empty - memory access is made on the byte before allocated buffer (catched by valgrind) - in the case it would constain 0x20 - it would even overwrite this buffer. So fix by checking len > 0 before doing such access. Also slightly optimise this loop from repeated strlen call.
This commit is contained in:
parent
5a47eb762a
commit
e134ce7c3c
@ -1,5 +1,6 @@
|
||||
Version 1.02.64 -
|
||||
===================================
|
||||
Fix memory access of empty params string in _reload_with_suppression_v4().
|
||||
Lower severity of selabel_lookup and matchpathcon failure to log_debug.
|
||||
Accept multiple mapped device names on many dmsetup command lines.
|
||||
Fix dm_udev_wait calls in dmsetup to occur before readahead display not after.
|
||||
|
@ -1836,6 +1836,7 @@ static int _reload_with_suppression_v4(struct dm_task *dmt)
|
||||
{
|
||||
struct dm_task *task;
|
||||
struct target *t1, *t2;
|
||||
size_t len;
|
||||
int r;
|
||||
|
||||
/* New task to get existing table information */
|
||||
@ -1878,8 +1879,9 @@ static int _reload_with_suppression_v4(struct dm_task *dmt)
|
||||
t2 = task->head;
|
||||
|
||||
while (t1 && t2) {
|
||||
while (t2->params[strlen(t2->params) - 1] == ' ')
|
||||
t2->params[strlen(t2->params) - 1] = '\0';
|
||||
len = strlen(t2->params);
|
||||
while (len-- > 0 && t2->params[len] == ' ')
|
||||
t2->params[len] = '\0';
|
||||
if ((t1->start != t2->start) ||
|
||||
(t1->length != t2->length) ||
|
||||
(strcmp(t1->type, t2->type)) ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user