gssapi: avoid putenv use-after-free in store_cred

Fixes #1163
This commit is contained in:
Roland C. Dowdeswell
2026-05-27 17:20:23 +01:00
parent 1f0f31c954
commit a735b65b70
+19 -2
View File
@@ -83,8 +83,25 @@ set_proc(OM_uint32 *minor, gss_buffer_set_t env)
#ifndef WIN32
size_t i;
for (i = 0; i < env->count; i++)
putenv(env->elements[i].value);
for (i = 0; i < env->count; i++) {
char *var = (char *)env->elements[i].value;
char *eq = strchr(var, '=');
char *val;
int e;
if (eq == NULL) {
*minor = EINVAL;
return GSS_S_FAILURE;
}
val = eq + 1;
*eq = '\0';
e = setenv(var, val, 1);
*eq = '=';
if (e != 0) {
*minor = errno ? errno : EINVAL;
return GSS_S_FAILURE;
}
}
#endif
return GSS_S_COMPLETE;
}