
On Tue, Jan 08, 2008 at 02:11:56PM +0000, Richard W.M. Jones wrote:
Jim Meyering wrote:
"Daniel P. Berrange" <berrange@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 -=|