mirror of
https://github.com/NixOS/nix
synced 2025-06-27 08:31:16 +02:00
* NAR archives: handle files larger than 2^32 bytes. Previously it
would just silently store only (fileSize % 2^32) bytes. * Use posix_fallocate if available when unpacking archives. * Provide a better error message when trying to unpack something that isn't a NAR archive.
This commit is contained in:
parent
7e05b8b75e
commit
77d272623f
7 changed files with 48 additions and 17 deletions
|
@ -80,7 +80,7 @@ void readPadding(unsigned int len, Source & source)
|
|||
unsigned int n = 8 - (len % 8);
|
||||
source(zero, n);
|
||||
for (unsigned int i = 0; i < n; i++)
|
||||
if (zero[i]) throw Error("non-zero padding");
|
||||
if (zero[i]) throw SerialisationError("non-zero padding");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -90,7 +90,7 @@ unsigned int readInt(Source & source)
|
|||
unsigned char buf[8];
|
||||
source(buf, sizeof(buf));
|
||||
if (buf[4] || buf[5] || buf[6] || buf[7])
|
||||
throw Error("implementation cannot deal with > 32-bit integers");
|
||||
throw SerialisationError("implementation cannot deal with > 32-bit integers");
|
||||
return
|
||||
buf[0] |
|
||||
(buf[1] << 8) |
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue