]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Check return value of ms_error_text()
authorSteffan Karger <steffan@karger.me>
Mon, 21 Sep 2015 20:04:19 +0000 (22:04 +0200)
committerGert Doering <gert@greenie.muc.de>
Sun, 4 Oct 2015 19:55:38 +0000 (21:55 +0200)
ms_error_text() may return NULL, and it is unclear (or, at least
undocumented) whether the OpenSSL ERR code (and our code using the ERR
code) can deal with esd->string being NULL.  So, just to be sure, check
that ms_error_text() succeeded before passing the result to
ERR_load_strings().

Signed-off-by: Steffan Karger <steffan@karger.me>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <561130FC.8090008@karger.me>
URL: http://article.gmane.org/gmane.network.openvpn.devel/10176
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/cryptoapi.c

index 1d54ee7276a28e084d09c607774015b2d38d7be3..853c07b19c020585007f5b61a40a0985dcdfbc50 100644 (file)
@@ -164,6 +164,7 @@ static void err_put_ms_error(DWORD ms_err, int func, const char *file, int line)
            err_map[i].ms_err = ms_err;
            err_map[i].err = esd->error = i + 100;
            esd->string = ms_error_text(ms_err);
+           check_malloc_return(esd->string);
            ERR_load_strings(ERR_LIB_CRYPTOAPI, esd);
            ERR_PUT_error(ERR_LIB_CRYPTOAPI, func, err_map[i].err, file, line);
            break;