Skip to content

Commit cf30232

Browse files
committed
Added extra check when accessing FCGI REQUEST_METHOD parameter as mis-configured servers may not send this. Fixes issue raised in #288
1 parent 3e59f38 commit cf30232

2 files changed

Lines changed: 22 additions & 2 deletions

File tree

ChangeLog

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
24/06/2026:
2+
- Added extra check when accessing FCGI REQUEST_METHOD parameter as mis-configured servers may not send this.
3+
Fixes issue raised in https://github.com/ruven/iipsrv/issues/288
4+
5+
16
27/05/2026:
27
- Change metadata write order for JPEG output to better follow most common order in JPEG streams.
38
Addresses part of issues raised in https://github.com/ruven/iipsrv/issues/286.

src/Main.cc

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -750,8 +750,13 @@ int main( int argc, char *argv[] )
750750
header = FCGX_GetParam( "QUERY_STRING", request.envp );
751751
request_string = (header!=NULL)? header : "";
752752

753-
header = FCGX_GetParam( "REQUEST_METHOD", request.envp );
754-
session.headers["REQUEST_METHOD"] = header;
753+
if( header = FCGX_GetParam( "REQUEST_METHOD", request.envp ) ){
754+
session.headers["REQUEST_METHOD"] = header;
755+
}
756+
else{
757+
if( loglevel >=2 ) logfile << "Missing FCGI REQUEST_METHOD header" << endl;
758+
throw( 400 );
759+
}
755760

756761
// Handle OPTIONS request
757762
if( session.headers["REQUEST_METHOD"] == "OPTIONS" ){
@@ -950,6 +955,16 @@ int main( int argc, char *argv[] )
950955

951956
switch( code ){
952957

958+
case 400:
959+
response.setStatus( "400 Bad Request" );
960+
header = response.getHeaderResponse();
961+
writer.putS( header.c_str() );
962+
writer.flush();
963+
if( loglevel >= 2 ){
964+
logfile << "Sending HTTP 400 Bad Request" << endl;
965+
}
966+
break;
967+
953968
case 405:
954969
response.setStatus( "405 Method Not Allowed" );
955970
header = response.getHeaderResponse();

0 commit comments

Comments
 (0)