summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/amdgpu/amdgpu.h
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2020-06-10 11:56:53 +0300
committerAlex Deucher <alexander.deucher@amd.com>2020-07-01 01:59:19 -0400
commit8df1a28f41b9593301353c4f419c0fd93c40a26f (patch)
tree916d6d101740090bd915bbaacdd753b31fafc63a /drivers/gpu/drm/amd/amdgpu/amdgpu.h
parent3466a8f0c2fc9e428dc96b270037dfe657521f43 (diff)
downloadlwn-8df1a28f41b9593301353c4f419c0fd93c40a26f.tar.gz
lwn-8df1a28f41b9593301353c4f419c0fd93c40a26f.zip
drm/amdgpu: Fix a buffer overflow handling the serial number
The comments say that the serial number is a 16-digit HEX string so the buffer needs to be at least 17 characters to hold the NUL terminator. The other issue is that "size" returned from sprintf() is the number of characters before the NUL terminator so the memcpy() wasn't copying the terminator. The serial number needs to be NUL terminated so that it doesn't lead to a read overflow in amdgpu_device_get_serial_number(). Also it's just cleaner and faster to sprintf() directly to adev->serial[] instead of using a temporary buffer. Fixes: 81a16241114b ("drm/amdgpu: Add unique_id and serial_number for Arcturus v3") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Evan Quan <evan.quan@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu.h')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 135530286f34..905cf0bac100 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -986,7 +986,7 @@ struct amdgpu_device {
/* Chip product information */
char product_number[16];
char product_name[32];
- char serial[16];
+ char serial[20];
struct amdgpu_autodump autodump;