mirror of
https://github.com/aljazceru/turso.git
synced 2026-01-09 03:04:20 +01:00
Change more page size panics to corrupt errors
This commit is contained in:
14
core/lib.rs
14
core/lib.rs
@@ -470,9 +470,10 @@ impl Database {
|
||||
if let Some(shared_wal) = maybe_shared_wal {
|
||||
let size_in_wal = shared_wal.page_size();
|
||||
if size_in_wal != 0 {
|
||||
return Ok(PageSize::new(size_in_wal).unwrap_or_else(|| {
|
||||
panic!("invalid page size in WAL: {size_in_wal}");
|
||||
}));
|
||||
let Some(page_size) = PageSize::new(size_in_wal) else {
|
||||
bail_corrupt_error!("invalid page size in WAL: {size_in_wal}");
|
||||
};
|
||||
return Ok(page_size);
|
||||
}
|
||||
}
|
||||
if self.db_state.is_initialized() {
|
||||
@@ -481,9 +482,10 @@ impl Database {
|
||||
let Some(size) = requested_page_size else {
|
||||
return Ok(PageSize::default());
|
||||
};
|
||||
Ok(PageSize::new(size as u32).unwrap_or_else(|| {
|
||||
panic!("invalid requested page size: {size}");
|
||||
}))
|
||||
let Some(page_size) = PageSize::new(size as u32) else {
|
||||
bail_corrupt_error!("invalid requested page size: {size}");
|
||||
};
|
||||
Ok(page_size)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ use crate::storage::sqlite3_ondisk::{
|
||||
write_pages_vectored, PageSize, WAL_FRAME_HEADER_SIZE, WAL_HEADER_SIZE,
|
||||
};
|
||||
use crate::types::{IOCompletions, IOResult};
|
||||
use crate::{turso_assert, Buffer, LimboError, Result};
|
||||
use crate::{bail_corrupt_error, turso_assert, Buffer, LimboError, Result};
|
||||
use crate::{Completion, Page};
|
||||
|
||||
use self::sqlite3_ondisk::{checksum_wal, PageContent, WAL_MAGIC_BE, WAL_MAGIC_LE};
|
||||
@@ -956,9 +956,10 @@ impl Wal for WalFile {
|
||||
db_size: u64,
|
||||
page: &[u8],
|
||||
) -> Result<()> {
|
||||
self.ensure_header_if_needed(PageSize::new(page.len() as u32).unwrap_or_else(|| {
|
||||
panic!("invalid page size: {}", page.len());
|
||||
}))?;
|
||||
let Some(page_size) = PageSize::new(page.len() as u32) else {
|
||||
bail_corrupt_error!("invalid page size: {}", page.len());
|
||||
};
|
||||
self.ensure_header_if_needed(page_size)?;
|
||||
tracing::debug!("write_raw_frame({})", frame_id);
|
||||
if page.len() != self.page_size() as usize {
|
||||
return Err(LimboError::InvalidArgument(format!(
|
||||
|
||||
Reference in New Issue
Block a user