Fossil SCM
Correctly check for the end of the URI string and return an error if there is no more.
Commit
67a2350fcb688b7375a8cbc7b9764af8d7485a18f0a9f6cc856e33d3e4fa8e68
Parent
6fc687402673e88…
1 file changed
+1
-1
+1
-1
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -2357,11 +2357,11 @@ | ||
| 2357 | 2357 | } |
| 2358 | 2358 | n = strlen(g.zRepositoryName); |
| 2359 | 2359 | if( fossil_strncmp(g.zRepositoryName, zToken, n)==0 ){ |
| 2360 | 2360 | zToken += n; |
| 2361 | 2361 | } |
| 2362 | - if( zToken==0 ){ | |
| 2362 | + if( zToken && strlen(zToken)==0 ){ | |
| 2363 | 2363 | malformed_request("malformed URL in HTTP header"); |
| 2364 | 2364 | } |
| 2365 | 2365 | if( nCycles==0 ){ |
| 2366 | 2366 | cgi_setenv("REQUEST_URI", zToken); |
| 2367 | 2367 | cgi_setenv("SCRIPT_NAME", ""); |
| 2368 | 2368 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -2357,11 +2357,11 @@ | |
| 2357 | } |
| 2358 | n = strlen(g.zRepositoryName); |
| 2359 | if( fossil_strncmp(g.zRepositoryName, zToken, n)==0 ){ |
| 2360 | zToken += n; |
| 2361 | } |
| 2362 | if( zToken==0 ){ |
| 2363 | malformed_request("malformed URL in HTTP header"); |
| 2364 | } |
| 2365 | if( nCycles==0 ){ |
| 2366 | cgi_setenv("REQUEST_URI", zToken); |
| 2367 | cgi_setenv("SCRIPT_NAME", ""); |
| 2368 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -2357,11 +2357,11 @@ | |
| 2357 | } |
| 2358 | n = strlen(g.zRepositoryName); |
| 2359 | if( fossil_strncmp(g.zRepositoryName, zToken, n)==0 ){ |
| 2360 | zToken += n; |
| 2361 | } |
| 2362 | if( zToken && strlen(zToken)==0 ){ |
| 2363 | malformed_request("malformed URL in HTTP header"); |
| 2364 | } |
| 2365 | if( nCycles==0 ){ |
| 2366 | cgi_setenv("REQUEST_URI", zToken); |
| 2367 | cgi_setenv("SCRIPT_NAME", ""); |
| 2368 |