diff -urN libs/src/hci.c libs-mh/src/hci.c --- libs/src/hci.c Mon May 19 20:41:00 2003 +++ libs-mh/src/hci.c Thu May 22 18:02:41 2003 @@ -473,8 +473,10 @@ void *buf; int s, err; - if (nrsp <= 0) - nrsp = 200; // enough ? + if (nrsp < 0) { + errno = EINVAL; + return -1; + } if (dev_id < 0 && (dev_id = hci_get_route(NULL)) < 0) { errno = ENODEV; @@ -485,7 +487,11 @@ if (s < 0) return -1; - buf = malloc(sizeof(*ir) + (sizeof(inquiry_info) * (nrsp))); + if (nrsp == 0) + buf = malloc(sizeof(*ir) + (sizeof(inquiry_info) * 255)); + else + buf = malloc(sizeof(*ir) + (sizeof(inquiry_info) * nrsp)); + if (!buf) { close(s); return -1;