mirror of https://github.com/FreeRDP/FreeRDP
Removed casts in udevman_parse_device_id_addr
This commit is contained in:
parent
be884c2bf6
commit
c6666731d2
|
@ -601,26 +601,28 @@ static void udevman_load_interface(UDEVMAN* udevman)
|
||||||
static BOOL udevman_parse_device_id_addr(const char** str, UINT16* id1, UINT16* id2, UINT16 max,
|
static BOOL udevman_parse_device_id_addr(const char** str, UINT16* id1, UINT16* id2, UINT16 max,
|
||||||
char split_sign, char delimiter)
|
char split_sign, char delimiter)
|
||||||
{
|
{
|
||||||
const char* mid;
|
char* mid;
|
||||||
|
char* end;
|
||||||
unsigned long rc;
|
unsigned long rc;
|
||||||
|
|
||||||
rc = strtoul(*str, (char**)&mid, 16);
|
rc = strtoul(*str, &mid, 16);
|
||||||
/* These casts are safe, because strtoul only uses it to return a pointer */
|
/* These casts are safe, because strtoul only uses it to return a pointer */
|
||||||
|
|
||||||
if ((mid == *str) || (*mid != split_sign) || (rc > max))
|
if ((mid == *str) || (*mid != split_sign) || (rc > max))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
*id1 = (UINT16)rc;
|
*id1 = (UINT16)rc;
|
||||||
rc = strtoul(++mid, (char**)str, 16);
|
rc = strtoul(++mid, &end, 16);
|
||||||
|
|
||||||
if ((*str == mid) || (rc > max))
|
if ((end == mid) || (rc > max))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
*id2 = (UINT16)rc;
|
*id2 = (UINT16)rc;
|
||||||
|
|
||||||
if (**str == '\0')
|
*str += end - *str;
|
||||||
|
if (*end == '\0')
|
||||||
return TRUE;
|
return TRUE;
|
||||||
if (**str == delimiter)
|
if (*end == delimiter)
|
||||||
{
|
{
|
||||||
(*str)++;
|
(*str)++;
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
Loading…
Reference in New Issue