Index: uspace/lib/usb/src/usbdrvreq.c
===================================================================
--- uspace/lib/usb/src/usbdrvreq.c	(revision 38c5dfa9a3012dac19c4c7f6ab15359a49f297c7)
+++ uspace/lib/usb/src/usbdrvreq.c	(revision 409dce589363528ff184be9d4e5135915c3ba4ed)
@@ -80,5 +80,5 @@
  * @param[in] descriptor_type Descriptor type (device/configuration/HID/...).
  * @param[in] descriptor_index Descriptor index.
- * @param[in] langauge Language index.
+ * @param[in] language Language index.
  * @param[out] buffer Buffer where to store the retrieved descriptor.
  * @param[in] size Size of the @p buffer.
@@ -92,4 +92,11 @@
     void *buffer, size_t size, size_t *actual_size)
 {
+	if (buffer == NULL) {
+		return EBADMEM;
+	}
+	if (size == 0) {
+		return EINVAL;
+	}
+
 	/* Prepare the target. */
 	usb_target_t target = {
@@ -221,8 +228,4 @@
     void *buffer, size_t buffer_size, size_t *actual_buffer_size)
 {
-	if (buffer == NULL) {
-		return EBADMEM;
-	}
-
 	int rc = usb_drv_req_get_descriptor(phone, address,
 	    USB_REQUEST_TYPE_STANDARD,
