Skip to content
Snippets Groups Projects
Commit e1887edc authored by Deucе's avatar Deucе :ok_hand_tone4:
Browse files

"Fix" some completely inane Coverity issues.

None of these were even theoretically possible on any platform, but
I took the opportunity to add bounds checking to bitmap_puttext(),
so that's good I guess.
parent e5c75c3a
No related branches found
No related tags found
1 merge request!463MRC mods by Codefenix (2024-10-20)
Pipeline #4478 passed
...@@ -273,8 +273,6 @@ bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fil ...@@ -273,8 +273,6 @@ bitmap_vmem_puttext_locked(int sx, int sy, int ex, int ey, struct vmem_cell *fil
|| sy < 1 || sy < 1
|| ex < 1 || ex < 1
|| ey < 1 || ey < 1
|| sx > cio_textinfo.screenwidth
|| sy > cio_textinfo.screenheight
|| sx > ex || sx > ex
|| sy > ey || sy > ey
|| ex > cio_textinfo.screenwidth || ex > cio_textinfo.screenwidth
...@@ -882,12 +880,24 @@ static int update_from_vmem(int force) ...@@ -882,12 +880,24 @@ static int update_from_vmem(int force)
/**********************/ /**********************/
int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill) int bitmap_puttext(int sx, int sy, int ex, int ey, void *fill)
{ {
int x, y; size_t x, y;
int ret = 1; int ret = 1;
uint16_t *buf = fill; uint16_t *buf = fill;
struct vstat_vmem *vmem_ptr; struct vstat_vmem *vmem_ptr;
struct vmem_cell *vc; struct vmem_cell *vc;
if (sx < 1
|| sy < 1
|| ex < 1
|| ey < 1
|| sx > ex
|| sy > ey
|| ex > cio_textinfo.screenwidth
|| ey > cio_textinfo.screenheight
|| fill==NULL) {
return(0);
}
pthread_mutex_lock(&vstatlock); pthread_mutex_lock(&vstatlock);
vmem_ptr = get_vmem(&vstat); vmem_ptr = get_vmem(&vstat);
for (y = sy - 1; y < ey; y++) { for (y = sy - 1; y < ey; y++) {
...@@ -1264,7 +1274,7 @@ void bitmap_clreol(void) ...@@ -1264,7 +1274,7 @@ void bitmap_clreol(void)
void bitmap_clrscr(void) void bitmap_clrscr(void)
{ {
int x,y; size_t x, y;
WORD fill = (cio_textinfo.attribute << 8) | ' '; WORD fill = (cio_textinfo.attribute << 8) | ' ';
struct vstat_vmem *vmem_ptr; struct vstat_vmem *vmem_ptr;
struct vmem_cell *vc; struct vmem_cell *vc;
......
...@@ -370,7 +370,7 @@ font_management(void) ...@@ -370,7 +370,7 @@ font_management(void)
struct text_info ti; struct text_info ti;
gettextinfo(&ti); gettextinfo(&ti);
savbuf = alloca((ti.screenheight - 2) * ti.screenwidth * sizeof(*savbuf)); savbuf = alloca((ti.screenheight - 2U) * ti.screenwidth * sizeof(*savbuf));
if (savbuf == NULL) { if (savbuf == NULL) {
uifc.helpbuf = "malloc() has failed. Available Memory is dangerously low."; uifc.helpbuf = "malloc() has failed. Available Memory is dangerously low.";
uifc.msg("malloc() failure."); uifc.msg("malloc() failure.");
......
...@@ -15084,7 +15084,7 @@ draw_glyph(uint8_t ch) ...@@ -15084,7 +15084,7 @@ draw_glyph(uint8_t ch)
fk = htons(*(uint16_t *)(&fd[off + amiga_font->kernOffset + (ch - amiga_font->first) * 2])); fk = htons(*(uint16_t *)(&fd[off + amiga_font->kernOffset + (ch - amiga_font->first) * 2]));
voff = (amiga_font->height - amiga_font->baseline - 1) << doubled; voff = (amiga_font->height - amiga_font->baseline - 1) << doubled;
for (i = 0; i < amiga_font->height; i++) { for (i = 0; i < amiga_font->height; i++) {
pd = &fd[off + amiga_font->dataOffset + i * amiga_font->modulo]; pd = &fd[off + amiga_font->dataOffset + (size_t)i * amiga_font->modulo];
pd += (bitoff >> 3); pd += (bitoff >> 3);
currbit = 7 - (bitoff & 0x07); currbit = 7 - (bitoff & 0x07);
for (j = 0; j < width; j++) { for (j = 0; j < width; j++) {
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment