diff options
author | Pali Rohár <pali.rohar@gmail.com> | 2014-11-26 15:47:21 +0100 |
---|---|---|
committer | Pali Rohár <pali.rohar@gmail.com> | 2014-11-26 15:47:21 +0100 |
commit | 52efd5a404f3c8ee64b62ed55c954a151e61153a (patch) | |
tree | 81b91c713e93fe1fae133a8908601916e8c747a0 | |
parent | bc9f42f5595bf554e9af7d2cfc0bb9dfb8fb255f (diff) | |
download | 0xFFFF-52efd5a404f3c8ee64b62ed55c954a151e61153a.tar.bz2 |
nolo: Check for return buffer size
-rw-r--r-- | src/nolo.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -124,6 +124,9 @@ static int nolo_identify_string(struct usb_device_info * dev, const char * str, if ( ret < 0 ) NOLO_ERROR_RETURN("NOLO_IDENTIFY failed", -1); + if ( (size_t)ret > sizeof(buf) ) + ret = sizeof(buf); + ptr = memmem(buf, ret, str, strlen(str)); if ( ! ptr ) ERROR_RETURN("Substring was not found", -1); @@ -167,6 +170,9 @@ static int nolo_get_string(struct usb_device_info * dev, char * str, char * out, if ( ( ret = usb_control_msg(dev->udev, NOLO_QUERY, NOLO_GET_STRING, 0, 0, out, size-1, 2000) ) < 0 ) return -1; + if ( (size_t)ret > size-1 ) + ret = size-1; + out[size-1] = 0; out[ret] = 0; return strlen(out); |