diff --git a/src/driver/colorgradient.cpp b/src/driver/colorgradient.cpp index ee8e91150..e41087365 100644 --- a/src/driver/colorgradient.cpp +++ b/src/driver/colorgradient.cpp @@ -62,6 +62,9 @@ uint8_t CColorGradient::limitChar(int c) fb_pixel_t* CColorGradient::gradientColorToTransparent(fb_pixel_t col, fb_pixel_t *gradientBuf, int bSize, int /*mode*/, int /*intensity*/) { + if (bSize < 1) + return gradientBuf; + if (gradientBuf == NULL) { gradientBuf = (fb_pixel_t*) malloc(bSize * sizeof(fb_pixel_t)); if (gradientBuf == NULL) { @@ -94,6 +97,8 @@ fb_pixel_t* CColorGradient::gradientColorToTransparent(fb_pixel_t col, fb_pixel_ fb_pixel_t* CColorGradient::gradientOneColor(fb_pixel_t col, fb_pixel_t *gradientBuf, int bSize, int mode, int intensity, uint8_t v_min, uint8_t v_max, uint8_t s) { + if (bSize < 1) + return gradientBuf; if (gradientBuf == NULL) { gradientBuf = (fb_pixel_t*) malloc(bSize * sizeof(fb_pixel_t)); diff --git a/src/driver/framebuffer.cpp b/src/driver/framebuffer.cpp index 526e27371..aba573365 100644 --- a/src/driver/framebuffer.cpp +++ b/src/driver/framebuffer.cpp @@ -676,7 +676,7 @@ fb_pixel_t* CFrameBuffer::paintBoxRel2Buf(const int dx, const int dy, const int { if (!getActive()) return buf; - if (dx == 0 || dy == 0) { + if (dx < 1 || dy < 1) { dprintf(DEBUG_INFO, "[CFrameBuffer] [%s - %d]: radius %d, dx %d dy %d\n", __func__, __LINE__, radius, dx, dy); return buf; } @@ -2026,6 +2026,9 @@ void CFrameBuffer::blit2FB(void *fbbuff, uint32_t width, uint32_t height, uint32 void CFrameBuffer::blitBox2FB(const fb_pixel_t* boxBuf, uint32_t width, uint32_t height, uint32_t xoff, uint32_t yoff) { + if(width <1 || height <1 || !boxBuf ) + return; + uint32_t xc = (width > xRes) ? (uint32_t)xRes : width; uint32_t yc = (height > yRes) ? (uint32_t)yRes : height; diff --git a/src/gui/components/cc_frm_scrollbar.cpp b/src/gui/components/cc_frm_scrollbar.cpp index 953892245..e64607553 100644 --- a/src/gui/components/cc_frm_scrollbar.cpp +++ b/src/gui/components/cc_frm_scrollbar.cpp @@ -136,6 +136,8 @@ void CComponentsScrollBar::initSegments() //calculate height of segment container int h_seg_obj = height - 2*sb_up_obj->getHeight() - 3*append_y_offset; + if(h_seg_obj < 0) + h_seg_obj = 0; //init segment container if (sb_segments_obj == NULL){ @@ -154,6 +156,8 @@ void CComponentsScrollBar::initSegments() //set y position of 1st segment and set height of segments int y_seg = 1+ append_y_offset; int h_seg = sb_segments_obj->getHeight()/sb_segments_count - append_y_offset; + if(h_seg < 0) + h_seg = 0; //create and add segments to segment container for(u_int8_t i=0; iinitBBOffset(); if (!zap_mode) h_body += infoViewerBB->bottom_bar_offset;