diff options
author | Zeev Suraski <zeev@php.net> | 2000-08-19 16:38:19 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2000-08-19 16:38:19 +0000 |
commit | f112b686683e0f83fbcec3904d8c137d1653f989 (patch) | |
tree | ae0569baea2a6be56564685b14a3e05e8b76b582 /main/SAPI.c | |
parent | 07b5d74022c5471c096b73a708a088fcd975efbd (diff) | |
download | php-git-f112b686683e0f83fbcec3904d8c137d1653f989.tar.gz |
Avoid an endless loop situation in case of an error situation while sending headers
Diffstat (limited to 'main/SAPI.c')
-rw-r--r-- | main/SAPI.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/main/SAPI.c b/main/SAPI.c index e292abd128..040f23af77 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -462,6 +462,11 @@ SAPI_API int sapi_send_headers() return SUCCESS; } + /* Success-oriented. We set headers_sent to 1 here to avoid an infinite loop + * in case of an error situation. + */ + SG(headers_sent) = 1; + if (sapi_module.send_headers) { retval = sapi_module.send_headers(&SG(sapi_headers) SLS_CC); } else { @@ -470,7 +475,6 @@ SAPI_API int sapi_send_headers() switch (retval) { case SAPI_HEADER_SENT_SUCCESSFULLY: - SG(headers_sent) = 1; ret = SUCCESS; break; case SAPI_HEADER_DO_SEND: @@ -490,10 +494,10 @@ SAPI_API int sapi_send_headers() sapi_free_header(&default_header); } sapi_module.send_header(NULL, SG(server_context)); - SG(headers_sent) = 1; ret = SUCCESS; break; case SAPI_HEADER_SEND_FAILED: + SG(headers_sent) = 0; ret = FAILURE; break; } |