Page MenuHomeFreeBSD

vt: fix splash_cpu logos use of vd_drawrect
ClosedPublic

Authored by sg2342_googlemail.com on Feb 9 2022, 1:27 AM.
Tags
None
Referenced Files
F134623171: D34220.id.diff
Mon, Nov 3, 4:27 PM
Unknown Object (File)
Mon, Oct 27, 1:04 PM
Unknown Object (File)
Sun, Oct 26, 10:28 AM
Unknown Object (File)
Sat, Oct 25, 8:12 AM
Unknown Object (File)
Tue, Oct 14, 8:45 AM
Unknown Object (File)
Mon, Oct 13, 3:10 AM
Unknown Object (File)
Sat, Oct 11, 8:59 AM
Unknown Object (File)
Sat, Oct 11, 6:56 AM

Details

Summary

This fixes a memory corruption (author clearly did not intend to write to a non-existing
pixel column).

In the (extremely unlikely) case of vd->vd_height == vt_logo_sprite_height ; the
vd_drawrect code will write outside of frame-buffer memory.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 44366
Build 41254: arc lint + arc unit

Event Timeline

sys/dev/vt/vt_cpulogos.c
138–139

We also want to subtract one from vt_logo_sprite_height as well, right?

But I am a little surprised we don't do any dimension validation in vd_drawrect implementations s.t. we get memory corruption.

subtract one from vt_logo_sprite_height as well

i was glad that there was no dimension validation in vt_fb_drawrect(), otherwise https://reviews.freebsd.org/D34221 would be more complicated to do.

subtract one from vt_logo_sprite_height as well

Thanks.

i was glad that there was no dimension validation in vt_fb_drawrect(), otherwise https://reviews.freebsd.org/D34221 would be more complicated to do.

I suppose you could validate in setpixel instead.

This revision is now accepted and ready to land.Feb 9 2022, 3:00 AM

Can you provide author info (for git commit --author)

Author: Stefan Grundmann <sg2342@googlemail.com>

This revision was automatically updated to reflect the committed changes.