mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-28 07:51:19 +02:00
fix possible segfault and negative height
This commit is contained in:
@@ -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));
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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; i<sb_segments_count; i++){
|
||||
|
@@ -445,6 +445,9 @@ void CInfoViewer::paintHead()
|
||||
void CInfoViewer::paintBody()
|
||||
{
|
||||
int h_body = InfoHeightY - header_height - OFFSET_SHADOW;
|
||||
if(h_body < 0)
|
||||
h_body = 0;
|
||||
|
||||
infoViewerBB->initBBOffset();
|
||||
if (!zap_mode)
|
||||
h_body += infoViewerBB->bottom_bar_offset;
|
||||
|
Reference in New Issue
Block a user