Control: reassign -1 reprepro 5.3.0-1
Control: retitle -1 reprepro imposes arbitrary limits on control files that are
successfully parsed by other debian tools
Ximin Luo:
> [..]
> I'll take a look at reprepro in the next 2-3 weeks; arbitrary limits like
> 256K should be pretty easy to fix (have you tried simply configuring the BDB
> limits?).
The relevant code in reprepro is indexfile.c
line 66: f->size = 256*1024;
Change this to something like 4MB would be a short hacky fix to the current
issue, I don't think even the extreme rust examples have a 4MB control field
yet.
A long-term fix would be to fix this:
line 151-166:
if (f->size - f->ofs <= 2048) {
/* Adding code to enlarge the buffer in this case
* is risky as hard to test properly.
*
* Also it is almost certainly caused by some
* mis-representation of the file or perhaps
* some attack. Requesting all existing memory in
* those cases does not sound very useful. */
fprintf(stderr,
"Error parsing %s line %d: Ridiculous long (>= 256K) control chunk!\n",
f->filename,
f->startlinenumber);
f->failed = true;
return RET_ERROR;
}
One reasonable option would be to rip out this code and use whatever dpkg
itself is using to parse the fields.
X
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git