From ec54eb88a3ce3ec62f6d39f819ff369477225d96 Mon Sep 17 00:00:00 2001 From: JoergAtGithub Date: Sun, 16 Oct 2022 21:18:16 +0200 Subject: [PATCH] Fix "warning C4996: 'wcsncpy': This function or variable may be unsafe." by using wcsncpy_s instead --- windows/hid.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/windows/hid.c b/windows/hid.c index 376927667..00c3463f0 100644 --- a/windows/hid.c +++ b/windows/hid.c @@ -1182,9 +1182,13 @@ int HID_API_EXPORT_CALL HID_API_CALL hid_get_manufacturer_string(hid_device *dev return -1; } - wcsncpy(string, dev->device_info->manufacturer_string, maxlen); + errno_t err = wcsncpy_s(string, maxlen, dev->device_info->manufacturer_string, MAX_STRING_WCHARS); string[maxlen - 1] = L'\0'; + if (err) { + register_string_error(dev, L"Buffer to small"); + } + register_string_error(dev, NULL); return 0; @@ -1202,9 +1206,13 @@ int HID_API_EXPORT_CALL HID_API_CALL hid_get_product_string(hid_device *dev, wch return -1; } - wcsncpy(string, dev->device_info->product_string, maxlen); + errno_t err = wcsncpy_s(string, maxlen, dev->device_info->product_string, MAX_STRING_WCHARS); string[maxlen - 1] = L'\0'; + if (err) { + register_string_error(dev, L"Buffer to small"); + } + register_string_error(dev, NULL); return 0; @@ -1222,9 +1230,13 @@ int HID_API_EXPORT_CALL HID_API_CALL hid_get_serial_number_string(hid_device *de return -1; } - wcsncpy(string, dev->device_info->serial_number, maxlen); + errno_t err = wcsncpy_s(string, maxlen, dev->device_info->serial_number, MAX_STRING_WCHARS); string[maxlen - 1] = L'\0'; + if (err) { + register_string_error(dev, L"Buffer to small"); + } + register_string_error(dev, NULL); return 0;