From d85442d05de4f2c33e692f4815dbd06f46e3fdb8 Mon Sep 17 00:00:00 2001 From: Dan Nicholson Date: Thu, 21 Jun 2018 11:51:55 -0500 Subject: [PATCH] Bump debian control.tar size limit Increase the arbitrary control.tar limit from 1 MB to 16 MB. We came across an openjdk-7-jdk package that had a 2.4MB control.tar.gz and libsolv failed to parse it. dpkg doesn't actually apply a limit to these files. --- ext/repo_deb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ext/repo_deb.c b/ext/repo_deb.c index 277e65ae..6af7f105 100644 --- a/ext/repo_deb.c +++ b/ext/repo_deb.c @@ -599,8 +599,11 @@ repo_add_deb(Repo *repo, const char *deb, int flags) fclose(fp); return 0; } + /* dpkg has no actual maximum size for the control.tar member, so this + * just keeps from allocating arbitrarily large amounts of memory. + */ clen = atoi((char *)buf + 8 + 60 + vlen + 48); - if (clen <= 0 || clen >= 0x100000) + if (clen <= 0 || clen >= 0x1000000) { pool_error(pool, -1, "%s: control.tar has illegal size", deb); fclose(fp); -- 2.47.2