--- sys/dev/usb/ugen.c 2008-11-22 14:40:13.000000000 +0800 +++ /var/current/mysrc/sys/dev/usb/ugen.c 2008-11-24 11:49:02.000000000 +0800 @@ -1396,6 +1396,8 @@ int error; cdesc = ugen_get_cdesc(sc, fd->ufd_config_index, &len); + if (cdesc == NULL) + return (EINVAL); if (len > fd->ufd_size) len = fd->ufd_size; iov.iov_base = (caddr_t)fd->ufd_data;