From: Yehuda Sadeh Date: Tue, 29 Jul 2014 22:25:47 +0000 (-0700) Subject: rgw: fix crash in swift CORS preflight request X-Git-Tag: v0.80.6~103^2~2^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6f1a54436c63a4cb63712936fccade3267d03db8;p=ceph.git rgw: fix crash in swift CORS preflight request Fixes: #8586 This fixes error handling, in accordance with commit 6af5a537 that fixed the same issue for the S3 case. Signed-off-by: Yehuda Sadeh (cherry picked from commit 18ea2a869791b4894f93fdafde140285f2e4fb65) --- diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index 507a7ffc3ea1..b56207934f69 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -627,18 +627,16 @@ void RGWOptionsCORS_ObjStore_SWIFT::send_response() uint32_t max_age = CORS_MAX_AGE_INVALID; /*EACCES means, there is no CORS registered yet for the bucket *ENOENT means, there is no match of the Origin in the list of CORSRule - *ENOTSUPP means, the HTTP_METHOD is not supported */ if (ret == -ENOENT) ret = -EACCES; - if (ret != -EACCES) { - get_response_params(hdrs, exp_hdrs, &max_age); - } else { + if (ret < 0) { set_req_state_err(s, ret); dump_errno(s); end_header(s, NULL); return; } + get_response_params(hdrs, exp_hdrs, &max_age); dump_errno(s); dump_access_control(s, origin, req_meth, hdrs.c_str(), exp_hdrs.c_str(), max_age); end_header(s, NULL);