From: Yehuda Sadeh Date: Wed, 27 Jul 2011 23:04:36 +0000 (-0700) Subject: rgw: return required error when conent length missing on PUT X-Git-Tag: v0.33~138 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=29e07736ab2016ccf8db45f8b6fe35b5ca293f26;p=ceph.git rgw: return required error when conent length missing on PUT --- diff --git a/src/rgw/rgw_common.h b/src/rgw/rgw_common.h index dfbecb13c87e..e688fba6f54f 100644 --- a/src/rgw/rgw_common.h +++ b/src/rgw/rgw_common.h @@ -100,6 +100,7 @@ extern string rgw_root_bucket; #define ERR_INVALID_PART_ORDER 2008 #define ERR_NO_SUCH_UPLOAD 2009 #define ERR_REQUEST_TIMEOUT 2010 +#define ERR_LENGTH_REQUIRED 2011 #define ERR_USER_SUSPENDED 2100 diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index 75bf74730c6f..d159bc968b5d 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -37,6 +37,7 @@ const static struct rgw_html_errors RGW_HTML_ERRORS[] = { { ERR_INVALID_PART, 400, "InvalidPart" }, { ERR_INVALID_PART_ORDER, 400, "InvalidPartOrder" }, { ERR_REQUEST_TIMEOUT, 400, "RequestTimeout" }, + { ERR_LENGTH_REQUIRED, 411, "MissingContentLength" }, { EACCES, 403, "AccessDenied" }, { EPERM, 403, "AccessDenied" }, { ERR_USER_SUSPENDED, 403, "UserSuspended" }, @@ -700,9 +701,12 @@ int RGWHandler_REST::preprocess(struct req_state *s, FCGX_Request *fcgx) switch (s->op) { case OP_PUT: - if (!s->length || *s->length == '\0') + if (!s->length) + ret = -ERR_LENGTH_REQUIRED; + else if (*s->length == '\0') ret = -EINVAL; - s->content_length = atoll(s->length); + else + s->content_length = atoll(s->length); break; default: break;