Go to the source code of this file.
Definition at line 205 of file rar.c.
208 if (!
ar_seek(stream, 0, SEEK_SET))
210 if (
ar_read(stream, signature,
sizeof(signature)) !=
sizeof(signature))
212 if (memcmp(signature,
"Rar!\x1A\x07\x00",
sizeof(signature)) != 0) {
213 if (memcmp(signature,
"Rar!\x1A\x07\x01",
sizeof(signature)) == 0)
214 warn(
"RAR 5 format isn't supported");
215 else if (memcmp(signature,
"RE~^", 4) == 0)
216 warn(
"Ancient RAR format isn't supported");
217 else if (memcmp(signature,
"MZ", 2) == 0 || memcmp(signature,
"\x7F\x45LF", 4) == 0)
218 warn(
"SFX archives aren't supported");
Definition at line 6 of file rar.c.
static bool rar_copy_stored |
( |
ar_archive_rar * |
rar, |
|
|
void * |
buffer, |
|
|
size_t |
count |
|
) |
| |
|
static |
Definition at line 120 of file rar.c.
123 warn(
"Unexpected EOS in stored data");
127 warn(
"Unexpected EOF in stored data");
Definition at line 13 of file rar.c.
21 warn(
"Couldn't seek to offset %" PRIi64, offset);
34 warn(
"Integer overflow due to overly large data size");
38 switch (header.type) {
41 warn(
"Encrypted archives aren't supported");
46 log(
"MHD_ENCRYPTVER is set");
50 log(
"MHD_COMMENT is set");
52 warn(
"Invalid RAR header size: %d", header.size);
62 warn(
"Encrypted entries will fail to uncompress");
64 if (header.datasize == 0) {
68 warn(
"Can't skip directory entries containing data");
71 warn(
"Splitting files isn't really supported");
106 log(
"Unknown RAR header type %02x", header.type);
Definition at line 135 of file rar.c.
139 log(
"Restarting decompression for solid entry");
148 unsigned char buffer[1024];
149 size_t count =
smin(size,
sizeof(buffer));
static bool rar_uncompress |
( |
ar_archive * |
ar, |
|
|
void * |
buffer, |
|
|
size_t |
count |
|
) |
| |
|
static |
Definition at line 165 of file rar.c.
180 warn(
"Failed to produce the required solid decompression state");
195 log(
"Compressed block has more data than required");
199 warn(
"Checksum of extracted data doesn't match");