1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +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:
Zdenek Kabelac 2011-09-24 21:12:35 +00:00
parent a4b6b51757
commit d040c17000

View File

@ -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.
*
@ -126,14 +126,13 @@ static void clear(void) {
static void drain(void) {
int sz;
char buf[2048];
memset(buf, 0, 2048);
while (1) {
sz = read(fds[1], buf, 2047);
if (verbose)
write(1, buf, sz);
sz = read(fds[1], buf, sizeof(buf));
if (sz <= 0)
return;
if (verbose)
write(1, buf, sz);
if (readbuf_used + sz >= readbuf_sz) {
readbuf_sz = readbuf_sz ? 2 * readbuf_sz : 4096;
readbuf = realloc(readbuf, readbuf_sz);
@ -291,5 +290,7 @@ int main(int argc, char **argv) {
return s.nfailed > 0 || die;
}
free(readbuf);
return die;
}