Browse code

Return NULL if GetAdaptersInfo fails

- Currently a pointer to potentially uninitialized IP_ADAPTER_INFO
struct is returned on error causing ill-defined behaviour.

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Steffan Karger <steffan.karger@fox-it.com>
Acked-by: Simon Rozman <simon@rozman.si>
Message-Id: <1514952123-26616-1-git-send-email-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg16139.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>

Selva Nair authored on 2018/01/03 13:02:03
Showing 1 changed files
... ...
@@ -4178,15 +4178,12 @@ get_adapter_info_list(struct gc_arena *gc)
4178 4178
     else
4179 4179
     {
4180 4180
         pi = (PIP_ADAPTER_INFO) gc_malloc(size, false, gc);
4181
-        if ((status = GetAdaptersInfo(pi, &size)) == NO_ERROR)
4182
-        {
4183
-            return pi;
4184
-        }
4185
-        else
4181
+        if ((status = GetAdaptersInfo(pi, &size)) != NO_ERROR)
4186 4182
         {
4187 4183
             msg(M_INFO, "GetAdaptersInfo #2 failed (status=%u) : %s",
4188 4184
                 (unsigned int)status,
4189 4185
                 strerror_win32(status, gc));
4186
+            pi = NULL;
4190 4187
         }
4191 4188
     }
4192 4189
     return pi;