drm/radeon/kms: add some sanity checks to obj info record parsingi (v2)
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=35502 agd5f: also add sanity check to connector records. v2: fix one more case. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Cc: stable@kernel.org Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
0ce790e7d7
commit
97ea530f6f
|
@ -675,7 +675,8 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
|
|||
ATOM_ENCODER_CAP_RECORD *cap_record;
|
||||
u16 caps = 0;
|
||||
|
||||
while (record->ucRecordType > 0 &&
|
||||
while (record->ucRecordSize > 0 &&
|
||||
record->ucRecordType > 0 &&
|
||||
record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) {
|
||||
switch (record->ucRecordType) {
|
||||
case ATOM_ENCODER_CAP_RECORD_TYPE:
|
||||
|
@ -720,7 +721,8 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
|
|||
break;
|
||||
}
|
||||
|
||||
while (record->ucRecordType > 0 &&
|
||||
while (record->ucRecordSize > 0 &&
|
||||
record->ucRecordType > 0 &&
|
||||
record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) {
|
||||
switch (record->ucRecordType) {
|
||||
case ATOM_I2C_RECORD_TYPE:
|
||||
|
@ -782,10 +784,9 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
|
|||
ATOM_HPD_INT_RECORD *hpd_record;
|
||||
ATOM_I2C_ID_CONFIG_ACCESS *i2c_config;
|
||||
|
||||
while (record->ucRecordType > 0
|
||||
&& record->
|
||||
ucRecordType <=
|
||||
ATOM_MAX_OBJECT_RECORD_NUMBER) {
|
||||
while (record->ucRecordSize > 0 &&
|
||||
record->ucRecordType > 0 &&
|
||||
record->ucRecordType <= ATOM_MAX_OBJECT_RECORD_NUMBER) {
|
||||
switch (record->ucRecordType) {
|
||||
case ATOM_I2C_RECORD_TYPE:
|
||||
i2c_record =
|
||||
|
|
Loading…
Reference in New Issue