OSDN Git Service

drm/amd/amdgpu: Fix missing null check in atombios_i2c.c
authorErnst Sjöstrand <ernstp@gmail.com>
Sun, 19 Nov 2017 17:52:44 +0000 (18:52 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 6 Dec 2017 17:47:59 +0000 (12:47 -0500)
Reported by smatch:
amdgpu_atombios_i2c_process_i2c_ch() error: we previously assumed 'buf' could be null

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Ernst Sjöstrand <ernstp@gmail.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/atombios_i2c.c

index b374653..f9b2ce9 100644 (file)
@@ -65,8 +65,15 @@ static int amdgpu_atombios_i2c_process_i2c_ch(struct amdgpu_i2c_chan *chan,
                        args.ucRegIndex = buf[0];
                if (num)
                        num--;
-               if (num)
-                       memcpy(&out, &buf[1], num);
+               if (num) {
+                       if (buf) {
+                               memcpy(&out, &buf[1], num);
+                       } else {
+                               DRM_ERROR("hw i2c: missing buf with num > 1\n");
+                               r = -EINVAL;
+                               goto done;
+                       }
+               }
                args.lpI2CDataOut = cpu_to_le16(out);
        } else {
                if (num > ATOM_MAX_HW_I2C_READ) {