[Libvir] PATCH: BZ 426425: Fix truncated reading of config files
Jim Meyering
jim at meyering.net
Tue Jan 8 10:24:31 UTC 2008
"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));
More information about the libvir-list
mailing list