X-Git-Url: http://git.etherboot.org/mirror/winof/.git/blobdiff_plain/161b08cb2462f04ecdb84467c432ef2000e5c178..26985ed39da7b0f32984c36620800649f50fdee5:/hw/mthca/kernel/mt_device.c diff --git a/hw/mthca/kernel/mt_device.c b/hw/mthca/kernel/mt_device.c index 93504583..883c9868 100644 --- a/hw/mthca/kernel/mt_device.c +++ b/hw/mthca/kernel/mt_device.c @@ -140,16 +140,18 @@ static int alloc_name(char *name) continue; if (i < 0 || i >= PAGE_SIZE * 8) continue; - snprintf(buf, sizeof(buf)-1, name, i); - buf[sizeof(buf)-1] = '\0'; + if (RtlStringCbPrintfA(buf, sizeof buf, name, i)) + return -EINVAL; + if (!strncmp(buf, device->name, IB_DEVICE_NAME_MAX)) set_bit(i, inuse); } i = find_first_zero_bit((const unsigned long *)inuse, PAGE_SIZE * 8); free_page(inuse); - snprintf(buf, sizeof(buf)-1, name, i); - buf[sizeof(buf)-1] = '\0'; + if (RtlStringCbPrintfA(buf, sizeof buf, name, i)) + return -EINVAL; + if (__ib_device_get_by_name(buf)) return -ENFILE; @@ -499,7 +501,7 @@ int ib_query_gid_chunk(struct ib_device *device, * ib_query_pkey_chunk() fetches the specified P_Key table entries chunk. */ int ib_query_pkey_chunk(struct ib_device *device, - u8 port_num, u16 index, u16 pkey[32]) + u8 port_num, u16 index, __be16 pkey[32]) { return device->query_pkey_chunk(device, port_num, index, pkey); }