Re: Bug in /proc/lvm/global (garbage printed)

Thorsten Kukuk (kukuk@suse.de)
Sun, 11 Nov 2001 08:36:50 +0100


On Sat, Nov 10, Andreas Dilger wrote:

> On Nov 10, 2001 12:06 +0100, Thorsten Kukuk wrote:
> > The problem is in the _proc_read_global function. This function does
> > not use the "page" parameter to return the data. Instead it allocates
> > it's own buffer and change to "start" parameter to point to it.
> >
> > --- drivers/md/lvm-fs.c 2001/11/09 19:00:38 1.1
> > +++ drivers/md/lvm-fs.c 2001/11/09 20:50:16
> > @@ -482,11 +480,15 @@
> > buf = NULL;
> > return 0;
> > }
> > - *start = &buf[pos];
> > - if (sz - pos < count)
> > + /* *start = &buf[pos]; */
> > + if (sz - pos < count) {
> > + memcpy (page, &buf[pos], sz - pos);
> > return sz - pos;
> > - else
> > + }
> > + else {
> > + memcpy (page, &buf[pos], count);
> > return count;
> > + }
> >
> > #undef LVM_PROC_BUF
> > }
>
> What version of LVM do you have? This code looks different than mine.
> The file lvm-fs.c does not exist in Linus kernels, only in patched kernels.

This is from LVM 1.0.1-rc4. But all previous versions have the same
problem, the function here is lvm_proc_get_global_info() in
drivers/md/lvm.c. The fix is also the same.

Thorsten

-- 
Thorsten Kukuk       http://www.suse.de/~kukuk/        kukuk@suse.de
SuSE GmbH            Deutschherrenstr. 15-19       D-90429 Nuernberg
--------------------------------------------------------------------    
Key fingerprint = A368 676B 5E1B 3E46 CFCE  2D97 F8FD 4E23 56C6 FB4B
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/