From 807afbc35c51809b7e0510ffecbf0da56fec7c1c Mon Sep 17 00:00:00 2001 From: Thomas Perl Date: Wed, 18 Jul 2012 00:42:47 +0200 Subject: [PATCH] Linux: Fix return value handling of mbstowcs() --- linux/hid.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/linux/hid.c b/linux/hid.c index fffa4fe..0d55996 100644 --- a/linux/hid.c +++ b/linux/hid.c @@ -289,7 +289,7 @@ static int get_device_string(hid_device *dev, enum device_string_id key, wchar_t ret = (ret == (size_t)-1)? -1: 0; break; case DEVICE_STRING_SERIAL: - mbstowcs(string, serial_number_utf8, maxlen); + ret = mbstowcs(string, serial_number_utf8, maxlen); ret = (ret == (size_t)-1)? -1: 0; break; default: @@ -317,7 +317,8 @@ static int get_device_string(hid_device *dev, enum device_string_id key, wchar_t str = udev_device_get_sysattr_value(parent, key_str); if (str) { /* Convert the string from UTF-8 to wchar_t */ - ret = (mbstowcs(string, str, maxlen) < 0)? -1: 0; + ret = mbstowcs(string, str, maxlen); + ret = (ret == (size_t)-1)? -1: 0; goto end; } }