]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fix missing check for return value of malloc'd buffer
authorSelva Nair <selva.nair@gmail.com>
Sun, 15 Oct 2017 19:05:15 +0000 (15:05 -0400)
committerGert Doering <gert@greenie.muc.de>
Fri, 3 Nov 2017 18:53:51 +0000 (19:53 +0100)
- Use utf8to16 from common.c for utf8 to wide conversion and
  check its return value

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1508094315-466-1-git-send-email-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg15641.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
(cherry picked from commit f3d389a2d2b87aeb649bfdccd596f485346a32c7)

src/openvpnserv/interactive.c

index 0c91199a86533ba83930ae95a5f39e6ce048531c..aab784e75aa200c018b7c7cb6ccf17ae2677f993 100644 (file)
@@ -554,15 +554,17 @@ static DWORD
 InterfaceLuid(const char *iface_name, PNET_LUID luid)
 {
     NETIO_STATUS status;
-    LPWSTR wide_name;
-    int n;
-
-    n = MultiByteToWideChar(CP_UTF8, 0, iface_name, -1, NULL, 0);
-    wide_name = malloc(n * sizeof(WCHAR));
-    MultiByteToWideChar(CP_UTF8, 0, iface_name, -1, wide_name, n);
-    status = ConvertInterfaceAliasToLuid(wide_name, luid);
-    free(wide_name);
+    LPWSTR wide_name = utf8to16(iface_name);
 
+    if (wide_name)
+    {
+        status = ConvertInterfaceAliasToLuid(wide_name, luid);
+        free(wide_name);
+    }
+    else
+    {
+        status = ERROR_OUTOFMEMORY;
+    }
     return status;
 }