From e44b034eaecc8803a830204534011b12c8ac8927 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Sat, 13 Nov 2010 14:58:50 +0000 Subject: [PATCH] filearch: Refuse to download initrd if it is huge. (cherry picked from commit b943d06466724df39b7261ce75e43b0201ed7372) --- src/filearch.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/filearch.c b/src/filearch.c index 35a2ceb..14c7c02 100644 --- a/src/filearch.c +++ b/src/filearch.c @@ -147,6 +147,14 @@ cpio_arch (guestfs_h *g, const char *file, const char *path) else method = "cat"; + /* Security: Refuse to download initrd if it is huge. */ + int64_t size = guestfs_filesize (g, path); + if (size == -1 || size > 100000000) { + error (g, _("size of %s unreasonable (%" PRIi64 " bytes)"), + path, size); + goto out; + } + if (mkdtemp (dir) == NULL) { perrorf (g, "mkdtemp"); goto out; -- 1.8.3.1