Fix handling a negative bytes_per_block values (#2206)
Related issue: https://github.com/libarchive/libarchive/issues/2185
This commit is contained in:
1 parent
edbb1fd452
commit
575e2eab4b
1 file changed
+9
-1
@@ -129,6 +129,10 @@ archive_write_new(void)
|
||||
int
|
||||
archive_write_set_bytes_per_block(struct archive *_a, int bytes_per_block)
|
||||
{
|
||||
if (bytes_per_block < 0) {
|
||||
// Do nothing if the bytes_per_block is negative
|
||||
return 0;
|
||||
}
|
||||
struct archive_write *a = (struct archive_write *)_a;
|
||||
archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
|
||||
ARCHIVE_STATE_NEW, "archive_write_set_bytes_per_block");
|
||||
@@ -137,7 +141,7 @@ archive_write_set_bytes_per_block(struct archive *_a, int bytes_per_block)
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the current block size. -1 if it has never been set.
|
||||
* Get the current block size.
|
||||
*/
|
||||
int
|
||||
archive_write_get_bytes_per_block(struct archive *_a)
|
||||
@@ -145,6 +149,10 @@ archive_write_get_bytes_per_block(struct archive *_a)
|
||||
struct archive_write *a = (struct archive_write *)_a;
|
||||
archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
|
||||
ARCHIVE_STATE_ANY, "archive_write_get_bytes_per_block");
|
||||
if (a->bytes_per_block < 0) {
|
||||
// Don't return a negative value
|
||||
return 1;
|
||||
}
|
||||
return (a->bytes_per_block);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user