[Libvir] PATCH: BZ 426425: Fix truncated reading of config files
Daniel P. Berrange
berrange at redhat.com
Tue Jan 8 16:17:19 UTC 2008
On Tue, Jan 08, 2008 at 02:11:56PM +0000, Richard W.M. Jones wrote:
> Jim Meyering wrote:
> >"Daniel P. Berrange" <berrange at redhat.com> wrote:
> >
> >>On Fri, Jan 04, 2008 at 09:55:47AM +0000, Richard W.M. Jones wrote:
> >>>Daniel P. Berrange wrote:
> >>>>The virConfReadFile API has a fixed 4096 byte buffer it reads the
> >>>>config
> >>>>file into, regardless of the config file size and silently drops any
> >>>>data
> >>>>exceeding this.
> >>>Ah, the joys of C ...
> >>>
> >>>>+ if ((ret = fread(*buf, st.st_size, 1, fh)) != 1) {
> >>>>+ free(buf);
> >>>>+ buf = NULL;
> >>>I wonder if you meant to write *buf = NULL here?
> >>Yes, indeed. I'll make that change before committing.
> >
> >You'll want this one, too:
> >
> >diff --git a/src/util.c b/src/util.c
> >index 0fa3611..01fc6e9 100644
> >--- a/src/util.c
> >+++ b/src/util.c
> >@@ -308,7 +308,7 @@ int virFileReadAll(const char *path,
> > }
> >
> > if ((ret = fread(*buf, st.st_size, 1, fh)) != 1) {
> >- free(buf);
> >+ free(*buf);
> > *buf = NULL;
> > virLog("Failed to read config file '%s': %s",
> > path, strerror(errno));
>
> Agreed. Dan?
Yes, thanks Jim - just committed this fix.
Dan.
--
|=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=|
|=- Perl modules: http://search.cpan.org/~danberr/ -=|
|=- Projects: http://freshmeat.net/~danielpb/ -=|
|=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|
More information about the libvir-list
mailing list