summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArora Aashish <arora.aashish@rocketmail.com>2021-02-24 16:09:46 +0000
committerArora Aashish <arora.aashish@rocketmail.com>2021-02-24 16:09:46 +0000
commit683516508b55f93f6cbd0dc4357c47434ed6cd30 (patch)
treec86f7cb5ed290e272cc1c7f12b65d8670505b56d
parent771a5ceb2745a3fe0dbc96926a1aaa5176006100 (diff)
downloadnss-hg-683516508b55f93f6cbd0dc4357c47434ed6cd30.tar.gz
Bug 1685880 - Fix for the gcc compiler version 7 to support setenv with nss build. r=rrelyea
Differential Revision: https://phabricator.services.mozilla.com/D104418
-rw-r--r--lib/util/secport.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/util/secport.c b/lib/util/secport.c
index ae979ebad..7126492fc 100644
--- a/lib/util/secport.c
+++ b/lib/util/secport.c
@@ -740,8 +740,14 @@ NSS_PutEnv(const char *envVarName, const char *envValue)
SET_ERROR_CODE
return SECFailure;
}
-#endif
-
+#elif defined(__GNUC__) && __GNUC__ >= 7
+ int setEnvFailed;
+ setEnvFailed = setenv(envVarName, envValue, 1);
+ if (setEnvFailed) {
+ SET_ERROR_CODE
+ return SECFailure;
+ }
+#else
encoded = (char *)PORT_ZAlloc(strlen(envVarName) + 2 + strlen(envValue));
if (!encoded) {
return SECFailure;
@@ -749,13 +755,14 @@ NSS_PutEnv(const char *envVarName, const char *envValue)
strcpy(encoded, envVarName);
strcat(encoded, "=");
strcat(encoded, envValue);
-
putEnvFailed = putenv(encoded); /* adopt. */
+
if (putEnvFailed) {
SET_ERROR_CODE
result = SECFailure;
PORT_Free(encoded);
}
+#endif
return result;
}