mirror of
https://github.com/ckolivas/lrzip.git
synced 2025-12-06 07:12:00 +01:00
Consolidate padded length throughout.
This commit is contained in:
parent
bedea4dbec
commit
928a0a098a
3
lrzip.c
3
lrzip.c
|
|
@ -837,8 +837,7 @@ next_chunk:
|
||||||
} while (last_head);
|
} while (last_head);
|
||||||
++stream;
|
++stream;
|
||||||
}
|
}
|
||||||
if (ENCRYPT && c_len % CBC_LEN)
|
c_len = CBC_PADDED(c_len);
|
||||||
c_len += CBC_LEN - (c_len % CBC_LEN);
|
|
||||||
if (unlikely((ofs = lseek(fd_in, c_len, SEEK_CUR)) == -1))
|
if (unlikely((ofs = lseek(fd_in, c_len, SEEK_CUR)) == -1))
|
||||||
fatal("Failed to lseek c_len in get_fileinfo\n");
|
fatal("Failed to lseek c_len in get_fileinfo\n");
|
||||||
/* Chunk byte entry */
|
/* Chunk byte entry */
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,9 @@ typedef struct md5_ctx md5_ctx;
|
||||||
#define SALT_LEN 16
|
#define SALT_LEN 16
|
||||||
#define CBC_LEN 16
|
#define CBC_LEN 16
|
||||||
|
|
||||||
|
#define CBC_PAD(LEN) ((LEN % CBC_LEN) ? (CBC_LEN - (LEN % CBC_LEN)) : 0)
|
||||||
|
#define CBC_PADDED(LEN) (ENCRYPT ? (LEN) + CBC_PAD(LEN) : (LEN))
|
||||||
|
|
||||||
/* Needs to be less than 31 bits and page aligned on 32 bits */
|
/* Needs to be less than 31 bits and page aligned on 32 bits */
|
||||||
#define two_gig ((1ull << 31) - 4096)
|
#define two_gig ((1ull << 31) - 4096)
|
||||||
|
|
||||||
|
|
|
||||||
13
stream.c
13
stream.c
|
|
@ -58,8 +58,6 @@
|
||||||
|
|
||||||
#define STREAM_BUFSIZE (1024 * 1024 * 10)
|
#define STREAM_BUFSIZE (1024 * 1024 * 10)
|
||||||
|
|
||||||
#define CBC_PAD(LEN) ((LEN % CBC_LEN) ? (CBC_LEN - (LEN % CBC_LEN)) : 0)
|
|
||||||
|
|
||||||
static struct compress_thread{
|
static struct compress_thread{
|
||||||
uchar *s_buf; /* Uncompressed buffer -> Compressed buffer */
|
uchar *s_buf; /* Uncompressed buffer -> Compressed buffer */
|
||||||
uchar c_type; /* Compression type */
|
uchar c_type; /* Compression type */
|
||||||
|
|
@ -1299,7 +1297,7 @@ static void clear_buffer(rzip_control *control, struct stream_info *sinfo, int s
|
||||||
/* The stream buffer has been given to the thread, allocate a
|
/* The stream buffer has been given to the thread, allocate a
|
||||||
* new one. Allocate slightly more in case we need padding for
|
* new one. Allocate slightly more in case we need padding for
|
||||||
* encryption */
|
* encryption */
|
||||||
sinfo->s[streamno].buf = malloc(sinfo->bufsize + CBC_PAD(sinfo->bufsize));
|
sinfo->s[streamno].buf = malloc(CBC_PADDED(sinfo->bufsize));
|
||||||
if (unlikely(!sinfo->s[streamno].buf))
|
if (unlikely(!sinfo->s[streamno].buf))
|
||||||
fatal("Unable to malloc buffer of size %lld in flush_buffer\n", sinfo->bufsize);
|
fatal("Unable to malloc buffer of size %lld in flush_buffer\n", sinfo->bufsize);
|
||||||
sinfo->s[streamno].buflen = 0;
|
sinfo->s[streamno].buflen = 0;
|
||||||
|
|
@ -1424,17 +1422,14 @@ fill_another:
|
||||||
|
|
||||||
fsync(control->fd_out);
|
fsync(control->fd_out);
|
||||||
|
|
||||||
s_buf = malloc(c_len + CBC_PAD(c_len));
|
s_buf = malloc(CBC_PADDED(c_len));
|
||||||
if (unlikely(c_len && !s_buf))
|
if (unlikely(c_len && !s_buf))
|
||||||
fatal("Unable to malloc buffer of size %lld in fill_buffer\n", c_len);
|
fatal("Unable to malloc buffer of size %lld in fill_buffer\n", c_len);
|
||||||
sinfo->ram_alloced += c_len;
|
sinfo->ram_alloced += c_len;
|
||||||
|
|
||||||
/* If the data was encrypted, we need to read the padded data
|
/* If the data was encrypted, we need to read the padded data
|
||||||
* at the end and then discard it once it's decrypted */
|
* at the end and then discard it once it's decrypted */
|
||||||
if (ENCRYPT)
|
padded_len = CBC_PADDED(c_len);
|
||||||
padded_len = c_len + CBC_PAD(c_len);
|
|
||||||
else
|
|
||||||
padded_len = c_len;
|
|
||||||
|
|
||||||
if (unlikely(read_buf(control, sinfo->fd, s_buf, padded_len)))
|
if (unlikely(read_buf(control, sinfo->fd, s_buf, padded_len)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue