]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: replace all bad use of formatter->dump_format()
authorYehuda Sadeh <yehuda@inktank.com>
Wed, 23 May 2012 18:29:36 +0000 (11:29 -0700)
committerSage Weil <sage@newdream.net>
Wed, 23 May 2012 23:09:34 +0000 (16:09 -0700)
This fixes #2465. We should never ever use the dumped value
as the format. Never.

Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
src/rgw/rgw_admin.cc
src/rgw/rgw_rest.cc
src/rgw/rgw_rest_s3.cc
src/rgw/rgw_rest_swift.cc

index 0d4905c1b46738d0e4846647c3074bd1671091f8..1e486b46fbfb5198304ea97859efc0bfa7e7edb5 100644 (file)
@@ -296,10 +296,10 @@ static void show_user_info(RGWUserInfo& info, Formatter *formatter)
 
   formatter->open_object_section("user_info");
 
-  formatter->dump_string("user_id", info.user_id.c_str());
+  formatter->dump_string("user_id", info.user_id);
   formatter->dump_int("rados_uid", info.auid);
-  formatter->dump_string("display_name", info.display_name.c_str());
-  formatter->dump_string("email", info.user_email.c_str());
+  formatter->dump_string("display_name", info.display_name);
+  formatter->dump_string("email", info.user_email);
   formatter->dump_int("suspended", (int)info.suspended);
 
   // subusers
@@ -473,12 +473,12 @@ int bucket_stats(rgw_bucket& bucket, Formatter *formatter)
   }
   map<RGWObjCategory, RGWBucketStats>::iterator iter;
   formatter->open_object_section("stats");
-  formatter->dump_string("bucket", bucket.name.c_str());
-  formatter->dump_string("pool", bucket.pool.c_str());
+  formatter->dump_string("bucket", bucket.name);
+  formatter->dump_string("pool", bucket.pool);
   
   formatter->dump_string("id", bucket.bucket_id);
-  formatter->dump_string("marker", bucket.marker.c_str());
-  formatter->dump_string("owner", bucket_info.owner.c_str());
+  formatter->dump_string("marker", bucket.marker);
+  formatter->dump_string("owner", bucket_info.owner);
   formatter->open_object_section("usage");
   for (iter = stats.begin(); iter != stats.end(); ++iter) {
     RGWBucketStats& s = iter->second;
@@ -1156,23 +1156,23 @@ int main(int argc, char **argv)
 
         if (show_log_entries) {
          formatter->open_object_section("log_entry");
-         formatter->dump_string("bucket", entry.bucket.c_str());
+         formatter->dump_string("bucket", entry.bucket);
          entry.time.gmtime(formatter->dump_stream("time"));      // UTC
          entry.time.localtime(formatter->dump_stream("time_local"));
-         formatter->dump_string("remote_addr", entry.remote_addr.c_str());
+         formatter->dump_string("remote_addr", entry.remote_addr);
          if (entry.object_owner.length())
-           formatter->dump_string("object_owner", entry.object_owner.c_str());
-         formatter->dump_string("user", entry.user.c_str());
-         formatter->dump_string("operation", entry.op.c_str());
-         formatter->dump_string("uri", entry.uri.c_str());
-         formatter->dump_string("http_status", entry.http_status.c_str());
-         formatter->dump_string("error_code", entry.error_code.c_str());
+           formatter->dump_string("object_owner", entry.object_owner);
+         formatter->dump_string("user", entry.user);
+         formatter->dump_string("operation", entry.op);
+         formatter->dump_string("uri", entry.uri);
+         formatter->dump_string("http_status", entry.http_status);
+         formatter->dump_string("error_code", entry.error_code);
          formatter->dump_int("bytes_sent", entry.bytes_sent);
          formatter->dump_int("bytes_received", entry.bytes_received);
          formatter->dump_int("object_size", entry.obj_size);
          formatter->dump_int("total_time", total_time);
-         formatter->dump_string("user_agent",  entry.user_agent.c_str());
-         formatter->dump_string("referrer",  entry.referrer.c_str());
+         formatter->dump_string("user_agent",  entry.user_agent);
+         formatter->dump_string("referrer",  entry.referrer);
          formatter->close_section();
          formatter->flush(cout);
         }
index 9649466f8bcff1d8e7b646e355ad0dfe7d4e77f9..56452c473c5b2ab71668b067313a909e6c973782 100644 (file)
@@ -179,7 +179,7 @@ void dump_time(struct req_state *s, const char *name, time_t *t)
   if (strftime(buf, sizeof(buf), "%Y-%m-%dT%T.000Z", tmp) == 0)
     return;
 
-  s->formatter->dump_format(name, buf); 
+  s->formatter->dump_string(name, buf);
 }
 
 void dump_owner(struct req_state *s, string& id, string& name, const char *section)
@@ -187,8 +187,8 @@ void dump_owner(struct req_state *s, string& id, string& name, const char *secti
   if (!section)
     section = "Owner";
   s->formatter->open_object_section(section);
-  s->formatter->dump_format("ID", id.c_str());
-  s->formatter->dump_format("DisplayName", name.c_str());
+  s->formatter->dump_string("ID", id);
+  s->formatter->dump_string("DisplayName", name);
   s->formatter->close_section();
 }
 
@@ -225,9 +225,9 @@ void end_header(struct req_state *s, const char *content_type)
     dump_start(s);
     s->formatter->open_object_section("Error");
     if (!s->err.s3_code.empty())
-      s->formatter->dump_string("Code", s->err.s3_code.c_str());
+      s->formatter->dump_string("Code", s->err.s3_code);
     if (!s->err.message.empty())
-      s->formatter->dump_format("Message", s->err.message.c_str());
+      s->formatter->dump_string("Message", s->err.message);
     s->formatter->close_section();
     dump_content_length(s, s->formatter->get_len());
   }
index d6a1dd98dce8b7688723e97d13e3c25c3e133b2e..2aee8e0d2313179ba1ab2b938a751ea99560bda2 100644 (file)
@@ -34,7 +34,7 @@ void list_all_buckets_end(struct req_state *s)
 void dump_bucket(struct req_state *s, RGWBucketEnt& obj)
 {
   s->formatter->open_object_section("Bucket");
-  s->formatter->dump_format("Name", obj.bucket.name.c_str());
+  s->formatter->dump_string("Name", obj.bucket.name);
   dump_time(s, "CreationDate", &obj.mtime);
   s->formatter->close_section();
 }
@@ -147,25 +147,25 @@ void RGWListBucket_REST_S3::send_response()
 
   s->formatter->open_object_section_in_ns("ListBucketResult",
                                          "http://s3.amazonaws.com/doc/2006-03-01/");
-  s->formatter->dump_format("Name", s->bucket_name);
+  s->formatter->dump_string("Name", s->bucket_name);
   if (!prefix.empty())
-    s->formatter->dump_format("Prefix", prefix.c_str());
-  s->formatter->dump_format("Marker", marker.c_str());
+    s->formatter->dump_string("Prefix", prefix);
+  s->formatter->dump_string("Marker", marker);
   s->formatter->dump_int("MaxKeys", max);
   if (!delimiter.empty())
-    s->formatter->dump_format("Delimiter", delimiter.c_str());
+    s->formatter->dump_string("Delimiter", delimiter);
 
-  s->formatter->dump_format("IsTruncated", (max && is_truncated ? "true" : "false"));
+  s->formatter->dump_string("IsTruncated", (max && is_truncated ? "true" : "false"));
 
   if (ret >= 0) {
     vector<RGWObjEnt>::iterator iter;
     for (iter = objs.begin(); iter != objs.end(); ++iter) {
       s->formatter->open_array_section("Contents");
-      s->formatter->dump_string("Key", iter->name.c_str());
+      s->formatter->dump_string("Key", iter->name);
       dump_time(s, "LastModified", &iter->mtime);
       s->formatter->dump_format("ETag", "\"%s\"", iter->etag.c_str());
       s->formatter->dump_int("Size", iter->size);
-      s->formatter->dump_format("StorageClass", "STANDARD");
+      s->formatter->dump_string("StorageClass", "STANDARD");
       dump_owner(s, iter->owner, iter->owner_display_name);
       s->formatter->close_section();
     }
@@ -173,7 +173,7 @@ void RGWListBucket_REST_S3::send_response()
       map<string, bool>::iterator pref_iter;
       for (pref_iter = common_prefixes.begin(); pref_iter != common_prefixes.end(); ++pref_iter) {
         s->formatter->open_array_section("CommonPrefixes");
-        s->formatter->dump_format("Prefix", pref_iter->first.c_str());
+        s->formatter->dump_string("Prefix", pref_iter->first);
         s->formatter->close_section();
       }
     }
@@ -327,7 +327,7 @@ void RGWCopyObj_REST_S3::send_response()
       bufferlist& bl = iter->second;
       if (bl.length()) {
         char *etag = bl.c_str();
-        s->formatter->dump_format("ETag", etag);
+        s->formatter->dump_string("ETag", etag);
       }
     }
     s->formatter->close_section();
@@ -388,9 +388,9 @@ void RGWInitMultipart_REST_S3::send_response()
     dump_start(s);
     s->formatter->open_object_section_in_ns("InitiateMultipartUploadResult",
                  "http://s3.amazonaws.com/doc/2006-03-01/");
-    s->formatter->dump_format("Bucket", s->bucket_name);
-    s->formatter->dump_format("Key", s->object);
-    s->formatter->dump_format("UploadId", upload_id.c_str());
+    s->formatter->dump_string("Bucket", s->bucket_name);
+    s->formatter->dump_string("Key", s->object);
+    s->formatter->dump_string("UploadId", upload_id);
     s->formatter->close_section();
     flush_formatter_to_req_state(s, s->formatter);
   }
@@ -408,9 +408,9 @@ void RGWCompleteMultipart_REST_S3::send_response()
                          "http://s3.amazonaws.com/doc/2006-03-01/");
     if (g_conf->rgw_dns_name.length())
       s->formatter->dump_format("Location", "%s.%s", s->bucket_name, g_conf->rgw_dns_name.c_str());
-    s->formatter->dump_format("Bucket", s->bucket_name);
-    s->formatter->dump_format("Key", s->object);
-    s->formatter->dump_format("ETag", etag.c_str());
+    s->formatter->dump_string("Bucket", s->bucket_name);
+    s->formatter->dump_string("Key", s->object);
+    s->formatter->dump_string("ETag", etag);
     s->formatter->close_section();
     flush_formatter_to_req_state(s, s->formatter);
   }
@@ -445,14 +445,14 @@ void RGWListMultipart_REST_S3::send_response()
     for (i = 0, test_iter = iter; test_iter != parts.end() && i < max_parts; ++test_iter, ++i) {
       cur_max = test_iter->first;
     }
-    s->formatter->dump_format("Bucket", s->bucket_name);
-    s->formatter->dump_format("Key", s->object);
-    s->formatter->dump_format("UploadId", upload_id.c_str());
-    s->formatter->dump_format("StorageClass", "STANDARD");
+    s->formatter->dump_string("Bucket", s->bucket_name);
+    s->formatter->dump_string("Key", s->object);
+    s->formatter->dump_string("UploadId", upload_id);
+    s->formatter->dump_string("StorageClass", "STANDARD");
     s->formatter->dump_format("PartNumberMarker", "%d", marker);
     s->formatter->dump_format("NextPartNumberMarker", "%d", cur_max + 1);
     s->formatter->dump_format("MaxParts", "%d", max_parts);
-    s->formatter->dump_format("IsTruncated", "%s", (test_iter == parts.end() ? "false" : "true"));
+    s->formatter->dump_string("IsTruncated", (test_iter == parts.end() ? "false" : "true"));
 
     ACLOwner& owner = policy.get_owner();
     dump_owner(s, owner.get_id(), owner.get_display_name());
@@ -468,11 +468,11 @@ void RGWListMultipart_REST_S3::send_response()
       s->formatter->open_object_section("Part");
 
       if (strftime(buf, sizeof(buf), "%Y-%m-%dT%T.000Z", &tmp) > 0) {
-        s->formatter->dump_format("LastModified", buf);
+        s->formatter->dump_string("LastModified", buf);
       }
 
       s->formatter->dump_unsigned("PartNumber", info.num);
-      s->formatter->dump_format("ETag", "%s", info.etag.c_str());
+      s->formatter->dump_string("ETag", info.etag);
       s->formatter->dump_unsigned("Size", info.size);
       s->formatter->close_section();
     }
@@ -493,36 +493,36 @@ void RGWListBucketMultiparts_REST_S3::send_response()
     return;
 
   s->formatter->open_object_section("ListMultipartUploadsResult");
-  s->formatter->dump_format("Bucket", s->bucket_name);
+  s->formatter->dump_string("Bucket", s->bucket_name);
   if (!prefix.empty())
-    s->formatter->dump_format("ListMultipartUploadsResult.Prefix", prefix.c_str());
+    s->formatter->dump_string("ListMultipartUploadsResult.Prefix", prefix);
   string& key_marker = marker.get_key();
   if (!key_marker.empty())
-    s->formatter->dump_format("KeyMarker", key_marker.c_str());
+    s->formatter->dump_string("KeyMarker", key_marker);
   string& upload_id_marker = marker.get_upload_id();
   if (!upload_id_marker.empty())
-    s->formatter->dump_format("UploadIdMarker", upload_id_marker.c_str());
+    s->formatter->dump_string("UploadIdMarker", upload_id_marker);
   string next_key = next_marker.mp.get_key();
   if (!next_key.empty())
-    s->formatter->dump_format("NextKeyMarker", next_key.c_str());
+    s->formatter->dump_string("NextKeyMarker", next_key);
   string next_upload_id = next_marker.mp.get_upload_id();
   if (!next_upload_id.empty())
-    s->formatter->dump_format("NextUploadIdMarker", next_upload_id.c_str());
+    s->formatter->dump_string("NextUploadIdMarker", next_upload_id);
   s->formatter->dump_format("MaxUploads", "%d", max_uploads);
   if (!delimiter.empty())
-    s->formatter->dump_format("Delimiter", delimiter.c_str());
-  s->formatter->dump_format("IsTruncated", (is_truncated ? "true" : "false"));
+    s->formatter->dump_string("Delimiter", delimiter);
+  s->formatter->dump_string("IsTruncated", (is_truncated ? "true" : "false"));
 
   if (ret >= 0) {
     vector<RGWMultipartUploadEntry>::iterator iter;
     for (iter = uploads.begin(); iter != uploads.end(); ++iter) {
       RGWMPObj& mp = iter->mp;
       s->formatter->open_array_section("Upload");
-      s->formatter->dump_format("Key", mp.get_key().c_str());
-      s->formatter->dump_format("UploadId", mp.get_upload_id().c_str());
+      s->formatter->dump_string("Key", mp.get_key());
+      s->formatter->dump_string("UploadId", mp.get_upload_id());
       dump_owner(s, s->user.user_id, s->user.display_name, "Initiator");
       dump_owner(s, s->user.user_id, s->user.display_name);
-      s->formatter->dump_format("StorageClass", "STANDARD");
+      s->formatter->dump_string("StorageClass", "STANDARD");
       dump_time(s, "Initiated", &iter->obj.mtime);
       s->formatter->close_section();
     }
@@ -530,7 +530,7 @@ void RGWListBucketMultiparts_REST_S3::send_response()
       s->formatter->open_array_section("CommonPrefixes");
       map<string, bool>::iterator pref_iter;
       for (pref_iter = common_prefixes.begin(); pref_iter != common_prefixes.end(); ++pref_iter) {
-        s->formatter->dump_format("CommonPrefixes.Prefix", pref_iter->first.c_str());
+        s->formatter->dump_string("CommonPrefixes.Prefix", pref_iter->first);
       }
       s->formatter->close_section();
     }
index b84d55f3b698d1f1be8195c2ca28ccbd80583ad4..d6e59845fabfdae3c56bc41299e5c7d78dc422e0 100644 (file)
@@ -49,7 +49,7 @@ void RGWListBuckets_REST_SWIFT::send_response()
   for (int i = 0; i < limit && iter != m.end(); ++iter, ++i) {
     RGWBucketEnt obj = iter->second;
     s->formatter->open_object_section("container");
-    s->formatter->dump_string("name", obj.bucket.name.c_str());
+    s->formatter->dump_string("name", obj.bucket.name);
     s->formatter->dump_int("count", obj.count);
     s->formatter->dump_int("bytes", obj.size);
     s->formatter->close_section();
@@ -137,8 +137,8 @@ void RGWListBucket_REST_SWIFT::send_response()
         goto next;
 
       s->formatter->open_object_section("object");
-      s->formatter->dump_string("name", iter->name.c_str());
-      s->formatter->dump_string("hash", iter->etag.c_str());
+      s->formatter->dump_string("name", iter->name);
+      s->formatter->dump_string("hash", iter->etag);
       s->formatter->dump_int("bytes", iter->size);
       string single_content_type = iter->content_type;
       if (iter->content_type.size()) {
@@ -150,7 +150,7 @@ void RGWListBucket_REST_SWIFT::send_response()
             ++pos;
           single_content_type = single_content_type.substr(pos);
         }
-        s->formatter->dump_string("content_type", single_content_type.c_str());
+        s->formatter->dump_string("content_type", single_content_type);
       }
       dump_time(s, "last_modified", &iter->mtime);
       s->formatter->close_section();
@@ -162,7 +162,7 @@ void RGWListBucket_REST_SWIFT::send_response()
         goto next;
 
       s->formatter->open_object_section("object");
-      s->formatter->dump_string("name", pref_iter->first.c_str());
+      s->formatter->dump_string("name", pref_iter->first);
       s->formatter->close_section();
     }
 next: