diff options
| -rw-r--r-- | http-backend.c | 18 | 
1 files changed, 11 insertions, 7 deletions
diff --git a/http-backend.c b/http-backend.c index 345c12b790..d1e83d0906 100644 --- a/http-backend.c +++ b/http-backend.c @@ -538,15 +538,19 @@ static void service_rpc(char *service_name)  static NORETURN void die_webcgi(const char *err, va_list params)  { -	char buffer[1000]; +	static int dead; -	http_status(500, "Internal Server Error"); -	hdr_nocache(); -	end_headers(); +	if (!dead) { +		char buffer[1000]; +		dead = 1; -	vsnprintf(buffer, sizeof(buffer), err, params); -	fprintf(stderr, "fatal: %s\n", buffer); -	exit(0); +		vsnprintf(buffer, sizeof(buffer), err, params); +		fprintf(stderr, "fatal: %s\n", buffer); +		http_status(500, "Internal Server Error"); +		hdr_nocache(); +		end_headers(); +	} +	exit(0); /* we successfully reported a failure ;-) */  }  static char* getdir(void)  | 
