From ff607e1a2d76ed51ff959478818066d5a9a02b24 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sun, 10 Jan 2016 14:28:09 -0800 Subject: [PATCH] Correct multiple issues with ListBucketRequest * provide correct path * sign query string * URL encode query string --- src/curl.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/curl.cpp b/src/curl.cpp index fe7ab9e..fa41217 100644 --- a/src/curl.cpp +++ b/src/curl.cpp @@ -1960,16 +1960,17 @@ string S3fsCurl::CalcSignature(const string& method, const string& canonical_uri uriencode = urlEncode(canonical_uri); StringCQ = method + "\n"; if(0 == strcmp(method.c_str(),"HEAD") || 0 == strcmp(method.c_str(),"PUT") || 0 == strcmp(method.c_str(),"DELETE")){ - StringCQ += uriencode + "\n" + query_string + "\n"; + StringCQ += uriencode + "\n"; }else if (0 == strcmp(method.c_str(), "GET") && 0 == strcmp(uriencode.c_str(), "")) { - StringCQ +="/\n\n"; + StringCQ +="/\n"; }else if (0 == strcmp(method.c_str(), "GET") && 0 == strncmp(uriencode.c_str(), "/", 1)) { - StringCQ += uriencode +"\n\n"; + StringCQ += uriencode +"\n"; }else if (0 == strcmp(method.c_str(), "GET") && 0 != strncmp(uriencode.c_str(), "/", 1)) { StringCQ += "/\n" + urlEncode2(canonical_uri) +"\n"; }else if (0 == strcmp(method.c_str(), "POST")) { - StringCQ += uriencode +"\n" + query_string +"\n"; + StringCQ += uriencode + "\n"; } + StringCQ += urlEncode2(query_string) + "\n"; StringCQ += get_canonical_headers(requestHeaders) + "\n"; StringCQ += get_sorted_header_keys(requestHeaders) + "\n"; StringCQ += payload_hash; @@ -2723,7 +2724,7 @@ int S3fsCurl::ListBucketRequest(const char* tpath, const char* query) } }else{ - insertV4Headers("GET", query, "", ""); + insertV4Headers("GET", "/", query, ""); } // setopt