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?
Rich.
--
Emerging Technologies, Red Hat -
http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom. Registered in
England and Wales under Company Registration No. 03798903