maraiah: add extra integrity checks for pixmap areas

master
an 2019-07-01 01:18:50 -04:00
parent fcf467210e
commit e6bc793861
3 changed files with 9 additions and 3 deletions

View File

@ -1,6 +1,6 @@
//! QuickDraw PICT indexed `PixMap`s.
use crate::{err::*, image::{*, pict::{pm, rle}}};
use crate::{bin::check_data, err::*, image::{*, pict::{pm, rle}}};
/// Reads an indexed `PixMap`.
pub fn read(mut im: Image8,
@ -34,6 +34,8 @@ pub fn read(mut im: Image8,
d
};
check_data(&d, im.w())?;
p += pp;
for &idx in &d {

View File

@ -1,6 +1,6 @@
//! QuickDraw PICT R5G5B5 `PixMap`s.
use crate::{bin::u16b, err::*, image::{*, pict::{pm, rle}}};
use crate::{bin::{check_data, u16b}, err::*, image::{*, pict::{pm, rle}}};
/// Reads a R5G5B5 `PixMap`.
pub fn read(mut im: Image8,
@ -26,6 +26,8 @@ pub fn read(mut im: Image8,
for _ in 0..im.h() {
let (d, pp) = rle::read::<u16>(&b[p..], hdr.pitch)?;
check_data(&d, im.w())?;
p += pp;
for &cr in &d {

View File

@ -1,6 +1,6 @@
//! QuickDraw PICT RGB8 `PixMap`s.
use crate::{err::*, image::{*, pict::{pm, rle}}};
use crate::{bin::check_data, err::*, image::{*, pict::{pm, rle}}};
/// Reads a RGB8 `PixMap`.
pub fn read(mut im: Image8,
@ -41,6 +41,8 @@ pub fn read(mut im: Image8,
for _ in 0..im.h() {
let (d, pp) = rle::read::<u8>(&b[p..], pitch)?;
check_data(&d, im.w() * 3)?;
p += pp;
for x in 0..im.w() {