diff options
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/atom.c')
| -rw-r--r-- | drivers/gpu/drm/amd/amdgpu/atom.c | 7 | 
1 files changed, 4 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c index be5d67c2c7a1..7a063e44d429 100644 --- a/drivers/gpu/drm/amd/amdgpu/atom.c +++ b/drivers/gpu/drm/amd/amdgpu/atom.c @@ -1502,7 +1502,7 @@ static void atom_get_vbios_build(struct atom_context *ctx)  {  	unsigned char *atom_rom_hdr;  	unsigned char *str; -	uint16_t base; +	uint16_t base, len;  	base = CU16(ATOM_ROM_TABLE_PTR);  	atom_rom_hdr = CSTR(base); @@ -1515,8 +1515,9 @@ static void atom_get_vbios_build(struct atom_context *ctx)  	while (str < atom_rom_hdr && *str++)  		; -	if ((str + STRLEN_NORMAL) < atom_rom_hdr) -		strscpy(ctx->build_num, str, STRLEN_NORMAL); +	len = min(atom_rom_hdr - str, STRLEN_NORMAL); +	if (len) +		strscpy(ctx->build_num, str, len);  }  struct atom_context *amdgpu_atom_parse(struct card_info *card, void *bios) | 
