mirror of
https://github.com/google/wuffs.git
synced 2026-01-18 17:11:32 +01:00
std/jpeg: fix default-quality workbuf length check
This commit is contained in:
@@ -50883,11 +50883,11 @@ wuffs_jpeg__decoder__do_decode_frame(
|
||||
}
|
||||
self->private_impl.f_swizzle_immediately = false;
|
||||
if (self->private_impl.f_components_workbuf_offsets[8u] > ((uint64_t)(a_workbuf.len))) {
|
||||
if (self->private_impl.f_sof_marker >= 194u) {
|
||||
if ((self->private_impl.f_sof_marker >= 194u) || ! self->private_impl.f_use_lower_quality) {
|
||||
status = wuffs_base__make_status(wuffs_base__error__bad_workbuf_length);
|
||||
goto exit;
|
||||
}
|
||||
self->private_impl.f_swizzle_immediately = self->private_impl.f_use_lower_quality;
|
||||
self->private_impl.f_swizzle_immediately = true;
|
||||
self->private_impl.f_swizzle_immediately_status = wuffs_base__make_status(NULL);
|
||||
} else if (self->private_impl.f_components_workbuf_offsets[4u] < self->private_impl.f_components_workbuf_offsets[8u]) {
|
||||
wuffs_private_impl__bulk_memset(a_workbuf.ptr + self->private_impl.f_components_workbuf_offsets[4u], (self->private_impl.f_components_workbuf_offsets[8u] - self->private_impl.f_components_workbuf_offsets[4u]), 0u);
|
||||
|
||||
@@ -993,10 +993,10 @@ pri func decoder.do_decode_frame?(dst: ptr base.pixel_buffer, src: base.io_reade
|
||||
// is long enough and setting this.swizzle_immediately.
|
||||
this.swizzle_immediately = false
|
||||
if this.components_workbuf_offsets[8] > args.workbuf.length() {
|
||||
if this.sof_marker >= 0xC2 {
|
||||
if (this.sof_marker >= 0xC2) or not this.use_lower_quality {
|
||||
return base."#bad workbuf length"
|
||||
}
|
||||
this.swizzle_immediately = this.use_lower_quality
|
||||
this.swizzle_immediately = true
|
||||
this.swizzle_immediately_status = ok
|
||||
} else if this.components_workbuf_offsets[4] < this.components_workbuf_offsets[8] {
|
||||
args.workbuf[this.components_workbuf_offsets[4] .. this.components_workbuf_offsets[8]].bulk_memset!(byte_value: 0)
|
||||
|
||||
Reference in New Issue
Block a user