X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FUSB%2FCore%2Fusb_lowlevel.c;h=dce7c33ac75fc1f97b2f435ef90b94cfb0c2bed0;hb=25b02822ad95feb8f82f7b8fef44a58e29afb79b;hp=8eab0098c2959d6170a037702a6c1a7f3e177739;hpb=d8bf9f747a87c3c1d23461c155ef90b7fc148a21;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/USB/Core/usb_lowlevel.c b/KernelLand/Modules/USB/Core/usb_lowlevel.c index 8eab0098..dce7c33a 100644 --- a/KernelLand/Modules/USB/Core/usb_lowlevel.c +++ b/KernelLand/Modules/USB/Core/usb_lowlevel.c @@ -95,7 +95,6 @@ int USB_int_ReadDescriptor(tUSBDevice *Dev, int Endpoint, int Type, int Index, i const int ciMaxPacketSize = 0x400; struct sDeviceRequest req; int bToggle = 0; - void *final; int dest = Dev->Address*16 + Endpoint; ENTER("pDev xdest iType iIndex iLength pDest", @@ -131,7 +130,7 @@ int USB_int_ReadDescriptor(tUSBDevice *Dev, int Endpoint, int Type, int Index, i Threads_ClearEvent(THREAD_EVENT_SHORTWAIT); LOG("OUT (Status)"); - final = Dev->Host->HostDef->ControlOUT( + Dev->Host->HostDef->ControlOUT( Dev->Host->Ptr, dest, 1, USB_int_WakeThread, Proc_GetCurThread(), NULL, 0 @@ -152,7 +151,9 @@ char *USB_int_GetDeviceString(tUSBDevice *Dev, int Endpoint, int Index) if(Index == 0) return strdup(""); + str.Length = 0; USB_int_ReadDescriptor(Dev, Endpoint, 3, Index, sizeof(str), &str); + if(str.Length == 0) return NULL; if(str.Length < 2) { Log_Error("USB", "String %p:%i:%i:%i descriptor is undersized (%i)", Dev->Host, Dev->Address, Endpoint, Index, str.Length);