diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c index 4458fd8a01..8c07d0e559 100644 --- a/hw/xfree86/common/xf86Bus.c +++ b/hw/xfree86/common/xf86Bus.c @@ -290,8 +290,13 @@ StringToBusType(const char *busID, const char **retID) if (!xf86NameCmp(p, "usb")) ret = BUS_USB; if (ret != BUS_NONE) - if (retID) - *retID = busID + strlen(p) + 1; + if (retID) { + size_t len = strlen(p); + if (busID[len] == ':') + *retID = busID + len + 1; + else + *retID = busID + len; /* Points to the terminating null byte */ + } free(s); return ret; }