Commit 1de6818a authored by Andy Polyakov's avatar Andy Polyakov
Browse files

crypto/cryptlib.c: resolve possible race in OPENSSL_isservice.



Reviewed-by: default avatarKurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/6752)

(cherry picked from commit 9e4a1c3f)
parent 793e7eaf
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -128,10 +128,14 @@ int OPENSSL_isservice(void)

    if (_OPENSSL_isservice.p == NULL) {
        HANDLE mod = GetModuleHandle(NULL);
        FARPROC f;

        if (mod != NULL)
            _OPENSSL_isservice.f = GetProcAddress(mod, "_OPENSSL_isservice");
        if (_OPENSSL_isservice.p == NULL)
            f = GetProcAddress(mod, "_OPENSSL_isservice");
        if (f == NULL)
            _OPENSSL_isservice.p = (void *)-1;
        else
            _OPENSSL_isservice.f = f;
    }

    if (_OPENSSL_isservice.p != (void *)-1)