diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-08-17 10:36:23 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-08-17 16:08:13 +0100 |
commit | 96d3ac28d636290e9478ac27226862e627682025 (patch) | |
tree | 31c462e7cd37b5b474140f928d44c3039075aec9 /src/file.c | |
parent | 9d85eba3c3c169478d1edf0dd7ef9495d4be19ce (diff) | |
download | libguestfs-96d3ac28d636290e9478ac27226862e627682025.tar.gz libguestfs-96d3ac28d636290e9478ac27226862e627682025.tar.xz libguestfs-96d3ac28d636290e9478ac27226862e627682025.zip |
guestfs_read_file: Reimplement to avoid protocol limits.
Diffstat (limited to 'src/file.c')
-rw-r--r-- | src/file.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -51,6 +51,14 @@ sort_strings (char **argv, size_t len) char * guestfs__cat (guestfs_h *g, const char *path) { + size_t size; + + return guestfs_read_file (g, path, &size); +} + +char * +guestfs__read_file (guestfs_h *g, const char *path, size_t *size_r) +{ int fd = -1; size_t size; char *tmpfile = NULL, *ret = NULL; @@ -97,6 +105,10 @@ guestfs__cat (guestfs_h *g, const char *path) goto err; } + /* Mustn't touch *size_r until we are sure that we won't return any + * error (RHBZ#589039). + */ + *size_r = size; return ret; err: |