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