Fix potential index out of bounds in DisplayQt.cpp
This commit is contained in:
parent
ee21e43bdb
commit
fe37fa2ab2
@ -209,7 +209,7 @@ void DisplayQt::deinit(struct VideoBackend*) {
|
|||||||
|
|
||||||
void DisplayQt::setLayerDimensions(struct VideoBackend* v, enum VideoLayer layer, const struct mRectangle* dims) {
|
void DisplayQt::setLayerDimensions(struct VideoBackend* v, enum VideoLayer layer, const struct mRectangle* dims) {
|
||||||
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
||||||
if (layer > self->m_layerDims.size()) {
|
if (layer >= self->m_layerDims.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self->m_layerDims[layer] = QRect(dims->x, dims->y, dims->width, dims->height);
|
self->m_layerDims[layer] = QRect(dims->x, dims->y, dims->width, dims->height);
|
||||||
@ -217,7 +217,7 @@ void DisplayQt::setLayerDimensions(struct VideoBackend* v, enum VideoLayer layer
|
|||||||
|
|
||||||
void DisplayQt::layerDimensions(const struct VideoBackend* v, enum VideoLayer layer, struct mRectangle* dims) {
|
void DisplayQt::layerDimensions(const struct VideoBackend* v, enum VideoLayer layer, struct mRectangle* dims) {
|
||||||
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
||||||
if (layer > self->m_layerDims.size()) {
|
if (layer >= self->m_layerDims.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QRect rect = self->m_layerDims[layer];
|
QRect rect = self->m_layerDims[layer];
|
||||||
@ -238,7 +238,7 @@ void DisplayQt::contextResized(struct VideoBackend*, unsigned, unsigned, unsigne
|
|||||||
|
|
||||||
void DisplayQt::setImageSize(struct VideoBackend* v, enum VideoLayer layer, int w, int h) {
|
void DisplayQt::setImageSize(struct VideoBackend* v, enum VideoLayer layer, int w, int h) {
|
||||||
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
||||||
if (layer > self->m_layers.size()) {
|
if (layer >= self->m_layers.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
self->m_layers[layer] = QImage(w, h, QImage::Format_ARGB32);
|
self->m_layers[layer] = QImage(w, h, QImage::Format_ARGB32);
|
||||||
@ -246,7 +246,7 @@ void DisplayQt::setImageSize(struct VideoBackend* v, enum VideoLayer layer, int
|
|||||||
|
|
||||||
void DisplayQt::imageSize(struct VideoBackend* v, enum VideoLayer layer, int* w, int* h) {
|
void DisplayQt::imageSize(struct VideoBackend* v, enum VideoLayer layer, int* w, int* h) {
|
||||||
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
||||||
if (layer > self->m_layers.size()) {
|
if (layer >= self->m_layers.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
*w = self->m_layers[layer].width();
|
*w = self->m_layers[layer].width();
|
||||||
@ -255,7 +255,7 @@ void DisplayQt::imageSize(struct VideoBackend* v, enum VideoLayer layer, int* w,
|
|||||||
|
|
||||||
void DisplayQt::setImage(struct VideoBackend* v, enum VideoLayer layer, const void* frame) {
|
void DisplayQt::setImage(struct VideoBackend* v, enum VideoLayer layer, const void* frame) {
|
||||||
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
DisplayQt* self = static_cast<DisplayQt*>(v->user);
|
||||||
if (layer > self->m_layers.size()) {
|
if (layer >= self->m_layers.size()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QImage& image = self->m_layers[layer];
|
QImage& image = self->m_layers[layer];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user