mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-03 05:18:29 +03:00
Avoid sending garbage to terminal in verbose mode.
When read in drain returned <0 value, terminal content has been trashed. Remove unneeded memset() and use whole buffer. Free readbuf before exit (valgrind).
This commit is contained in:
parent
a4b6b51757
commit
d040c17000
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2010 Red Hat, Inc. All rights reserved.
|
* Copyright (C) 2010-2011 Red Hat, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* This file is part of LVM2.
|
* This file is part of LVM2.
|
||||||
*
|
*
|
||||||
@ -126,14 +126,13 @@ static void clear(void) {
|
|||||||
static void drain(void) {
|
static void drain(void) {
|
||||||
int sz;
|
int sz;
|
||||||
char buf[2048];
|
char buf[2048];
|
||||||
memset(buf, 0, 2048);
|
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
sz = read(fds[1], buf, 2047);
|
sz = read(fds[1], buf, sizeof(buf));
|
||||||
if (verbose)
|
|
||||||
write(1, buf, sz);
|
|
||||||
if (sz <= 0)
|
if (sz <= 0)
|
||||||
return;
|
return;
|
||||||
|
if (verbose)
|
||||||
|
write(1, buf, sz);
|
||||||
if (readbuf_used + sz >= readbuf_sz) {
|
if (readbuf_used + sz >= readbuf_sz) {
|
||||||
readbuf_sz = readbuf_sz ? 2 * readbuf_sz : 4096;
|
readbuf_sz = readbuf_sz ? 2 * readbuf_sz : 4096;
|
||||||
readbuf = realloc(readbuf, readbuf_sz);
|
readbuf = realloc(readbuf, readbuf_sz);
|
||||||
@ -291,5 +290,7 @@ int main(int argc, char **argv) {
|
|||||||
return s.nfailed > 0 || die;
|
return s.nfailed > 0 || die;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
free(readbuf);
|
||||||
|
|
||||||
return die;
|
return die;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user