diff --git a/src/mod_cgi.c b/src/mod_cgi.c index c8c0d01c..c19ffed6 100644 --- a/src/mod_cgi.c +++ b/src/mod_cgi.c @@ -500,7 +500,7 @@ static int cgi_env_add(void *venv, const char *key, size_t key_len, const char * env_accum *env = venv; char *dst; - if (!key || !val) return -1; + if (!key || (!val && val_len)) return -1; if (env->size - env->used < key_len + val_len + 2) { if (0 == env->size) env->size = 4096; diff --git a/src/mod_fastcgi.c b/src/mod_fastcgi.c index 3c3f992c..90f9b622 100644 --- a/src/mod_fastcgi.c +++ b/src/mod_fastcgi.c @@ -149,7 +149,7 @@ static int fcgi_env_add(void *venv, const char *key, size_t key_len, const char size_t len_enc_len = 0; char *dst; - if (!key || !val) return -1; + if (!key || (!val && val_len)) return -1; len = key_len + val_len; diff --git a/src/mod_scgi.c b/src/mod_scgi.c index 857cb3ac..636662d1 100644 --- a/src/mod_scgi.c +++ b/src/mod_scgi.c @@ -149,7 +149,7 @@ static int scgi_env_add_scgi(void *venv, const char *key, size_t key_len, const char *dst; size_t len; - if (!key || !val) return -1; + if (!key || (!val && val_len)) return -1; len = key_len + val_len + 2;