Ryan Ramage created COUCHDB-1697:
------------------------------------

             Summary: if-none-match header causes 500 internal server error on 
CORS requests
                 Key: COUCHDB-1697
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1697
             Project: CouchDB
          Issue Type: Bug
          Components: HTTP Interface
            Reporter: Ryan Ramage


Browsers can send a if-none-match header to couchdb, but this can will break 
when CORS is enabled. The reason seems to be the header comes in as a binary, 
eg from the debug log the header is:

{'If-None-Match',"\"V9J3604P4V9VTR5H77SBHJW\""},

When maybe_apply_cors_headers is called, the assumption is that the headers are 
strings. This can be seen here: 
https://github.com/apache/couchdb/blob/b0420f9006915149e81607615720f32f21c76725/src/couchdb/couch_httpd_cors.erl#L219

Thus a string:to_lower is undefined as can be seen in this stacktrace:

[info] [<0.148.0>] Stacktrace: [{string,to_lower,
                                 [undefined],
                                 [{file,"string.erl"},{line,468}]},
                                {couch_httpd_cors,maybe_apply_cors_headers,2,
                                 [{file,
                                   
"/Users/jan/Work/build-couchdb-mac/build-couchdb/git-build/https%3A%2F%2Fgit-wip-us.apache.org%2Frepos%2Fasf%2Fcouchdb.git%3A06c3f351f158f107a8293c7c6c9b2415b942f0e9/src/couchdb/couch_httpd_cors.erl"},
                                  {line,219}]},
                                {couch_httpd,send_response,4,
                                 [{file, 



See original gist 
https://gist.github.com/ryanramage/5143964#file-gistfile1-txt-L64

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to