diff options
Diffstat (limited to 'input/device.c')
| -rw-r--r-- | input/device.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/input/device.c b/input/device.c index 674a1c53..7cd595d0 100644 --- a/input/device.c +++ b/input/device.c @@ -1291,11 +1291,12 @@ static int get_class(bdaddr_t *src, bdaddr_t *dst, uint32_t *cls)  	if (!str)  		return -ENOENT; -	*cls = strtol(str, NULL, 16); +	if (sscanf(str, "%x", cls) != 1) { +		free(str); +		return -ENOENT; +	}  	free(str); -	if ((*cls == LONG_MIN) || (*cls == LONG_MAX)) -		return -ERANGE;  	return 0;  }  | 
