Fix handling a negative bytes_per_block values (#2206)

Related issue: https://github.com/libarchive/libarchive/issues/2185
This commit is contained in:
Lukas Javorsky authored and GitHub committed 2024-06-02 16:50:22 -07:00
1 parent edbb1fd452
commit 575e2eab4b
1 file changed
+9 -1
+9 -1
View File
@@ -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);
}