You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by mp...@apache.org on 2016/11/21 23:08:18 UTC

[2/3] mesos git commit: Fixed sign comparison errors caught by hardening flags in libprocess.

Fixed sign comparison errors caught by hardening flags in libprocess.

The hardening flags caught many new sign comparison errors
in libprocess that need to be fixed for Mesos to compile/run.

Review: https://reviews.apache.org/r/52647/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b833fbad
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b833fbad
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b833fbad

Branch: refs/heads/master
Commit: b833fbad04723755e2b12d88d31181dc61e759ba
Parents: c1969c7
Author: Aaron Wood <aa...@verizon.com>
Authored: Fri Nov 18 14:12:50 2016 -0800
Committer: Michael Park <mp...@apache.org>
Committed: Mon Nov 21 13:25:56 2016 -0800

----------------------------------------------------------------------
 3rdparty/libprocess/src/decoder.hpp               |  9 +++++++--
 3rdparty/libprocess/src/encoder.hpp               | 10 +++++-----
 3rdparty/libprocess/src/process.cpp               |  2 +-
 3rdparty/libprocess/src/tests/decoder_tests.cpp   | 18 +++++++++---------
 3rdparty/libprocess/src/tests/encoder_tests.cpp   |  4 ++--
 3rdparty/libprocess/src/tests/http_tests.cpp      |  8 ++++----
 3rdparty/libprocess/src/tests/io_tests.cpp        | 16 ++++++++--------
 .../libprocess/src/tests/subprocess_tests.cpp     |  2 +-
 8 files changed, 37 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/decoder.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/decoder.hpp b/3rdparty/libprocess/src/decoder.hpp
index 76dca0b..0a60128 100644
--- a/3rdparty/libprocess/src/decoder.hpp
+++ b/3rdparty/libprocess/src/decoder.hpp
@@ -18,6 +18,7 @@
 #include <glog/logging.h>
 
 #include <deque>
+#include <limits>
 #include <string>
 #include <vector>
 
@@ -249,7 +250,9 @@ private:
       }
       decoder->request->body = decompressed.get();
 
-      CHECK_LE(decoder->request->body.length(), CHAR_MAX);
+      CHECK_LE(static_cast<long>(decoder->request->body.length()),
+        std::numeric_limits<char>::max());
+
       decoder->request->headers["Content-Length"] =
         static_cast<char>(decoder->request->body.length());
     }
@@ -451,7 +454,9 @@ private:
       }
       decoder->response->body = decompressed.get();
 
-      CHECK_LE(decoder->response->body.length(), CHAR_MAX);
+      CHECK_LE(static_cast<long>(decoder->response->body.length()),
+        std::numeric_limits<char>::max());
+
       decoder->response->headers["Content-Length"] =
         static_cast<char>(decoder->response->body.length());
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/encoder.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/encoder.hpp b/3rdparty/libprocess/src/encoder.hpp
index 005d1cc..515821a 100644
--- a/3rdparty/libprocess/src/encoder.hpp
+++ b/3rdparty/libprocess/src/encoder.hpp
@@ -267,7 +267,7 @@ public:
   virtual int next(off_t* offset, size_t* length)
   {
     off_t temp = index;
-    index = static_cast<off_t>(size);
+    index = size;
     *offset = temp;
     *length = size - temp;
     return fd;
@@ -275,19 +275,19 @@ public:
 
   virtual void backup(size_t length)
   {
-    if (index >= length) {
-      index -= static_cast<off_t>(length);
+    if (index >= static_cast<off_t>(length)) {
+      index -= length;
     }
   }
 
   virtual size_t remaining() const
   {
-    return size - index;
+    return static_cast<size_t>(size - index);
   }
 
 private:
   int fd;
-  size_t size;
+  off_t size;
   off_t index;
 };
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index ab2b5a9..6dc10df 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -3732,7 +3732,7 @@ void ProcessBase::visit(const HttpEvent& event)
     response.path = assets[name].path;
 
     // Construct the final path by appending remaining tokens.
-    for (int i = 2; i < tokens.size(); i++) {
+    for (size_t i = 2; i < tokens.size(); i++) {
       response.path += "/" + tokens[i];
     }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/tests/decoder_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/decoder_tests.cpp b/3rdparty/libprocess/src/tests/decoder_tests.cpp
index 4535614..d4194a6 100644
--- a/3rdparty/libprocess/src/tests/decoder_tests.cpp
+++ b/3rdparty/libprocess/src/tests/decoder_tests.cpp
@@ -50,7 +50,7 @@ TEST(DecoderTest, Request)
 
   deque<http::Request*> requests = decoder.decode(data.data(), data.length());
   ASSERT_FALSE(decoder.failed());
-  ASSERT_EQ(1, requests.size());
+  ASSERT_EQ(1u, requests.size());
 
   Owned<http::Request> request(requests[0]);
   EXPECT_EQ("GET", request->method);
@@ -87,7 +87,7 @@ TEST(DecoderTest, RequestHeaderContinuation)
 
   deque<http::Request*> requests = decoder.decode(data.data(), data.length());
   ASSERT_FALSE(decoder.failed());
-  ASSERT_EQ(1, requests.size());
+  ASSERT_EQ(1u, requests.size());
 
   Owned<http::Request> request(requests[0]);
   EXPECT_SOME_EQ("compress,                 gzip",
@@ -110,7 +110,7 @@ TEST(DecoderTest, RequestHeaderCaseInsensitive)
 
   deque<http::Request*> requests = decoder.decode(data.data(), data.length());
   ASSERT_FALSE(decoder.failed());
-  ASSERT_EQ(1, requests.size());
+  ASSERT_EQ(1u, requests.size());
 
   Owned<http::Request> request(requests[0]);
   EXPECT_FALSE(request->keepAlive);
@@ -133,7 +133,7 @@ TEST(DecoderTest, Response)
 
   deque<http::Response*> responses = decoder.decode(data.data(), data.length());
   ASSERT_FALSE(decoder.failed());
-  ASSERT_EQ(1, responses.size());
+  ASSERT_EQ(1u, responses.size());
 
   Owned<http::Response> response(responses[0]);
 
@@ -141,7 +141,7 @@ TEST(DecoderTest, Response)
   EXPECT_EQ(http::Response::BODY, response->type);
   EXPECT_EQ("hi", response->body);
 
-  EXPECT_EQ(3, response->headers.size());
+  EXPECT_EQ(3u, response->headers.size());
 }
 
 
@@ -163,12 +163,12 @@ TEST(DecoderTest, StreamingResponse)
 
   EXPECT_FALSE(decoder.failed());
   EXPECT_TRUE(decoder.writingBody());
-  ASSERT_EQ(1, responses.size());
+  ASSERT_EQ(1u, responses.size());
 
   Owned<http::Response> response(responses[0]);
 
   EXPECT_EQ("200 OK", response->status);
-  EXPECT_EQ(3, response->headers.size());
+  EXPECT_EQ(3u, response->headers.size());
 
   ASSERT_EQ(http::Response::PIPE, response->type);
   ASSERT_SOME(response->reader);
@@ -216,11 +216,11 @@ TEST(DecoderTest, StreamingResponseFailure)
   EXPECT_FALSE(decoder.failed());
   EXPECT_TRUE(decoder.writingBody());
 
-  ASSERT_EQ(1, responses.size());
+  ASSERT_EQ(1u, responses.size());
   Owned<http::Response> response(responses[0]);
 
   EXPECT_EQ("200 OK", response->status);
-  EXPECT_EQ(3, response->headers.size());
+  EXPECT_EQ(3u, response->headers.size());
 
   ASSERT_EQ(http::Response::PIPE, response->type);
   ASSERT_SOME(response->reader);

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/tests/encoder_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/encoder_tests.cpp b/3rdparty/libprocess/src/tests/encoder_tests.cpp
index 9e57375..db3472f 100644
--- a/3rdparty/libprocess/src/tests/encoder_tests.cpp
+++ b/3rdparty/libprocess/src/tests/encoder_tests.cpp
@@ -50,7 +50,7 @@ TEST(EncoderTest, Response)
     decoder.decode(encoded.data(), encoded.length());
 
   ASSERT_FALSE(decoder.failed());
-  ASSERT_EQ(1, responses.size());
+  ASSERT_EQ(1u, responses.size());
 
   Owned<http::Response> decoded(responses[0]);
   EXPECT_EQ("200 OK", decoded->status);
@@ -58,7 +58,7 @@ TEST(EncoderTest, Response)
 
   // Encoding should have inserted the 'Date', 'Content-Length' and
   // 'Content-Type' headers.
-  EXPECT_EQ(3, decoded->headers.size());
+  EXPECT_EQ(3u, decoded->headers.size());
   EXPECT_TRUE(decoded->headers.contains("Date"));
   EXPECT_SOME_EQ(
       stringify(response.body.size()),

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/tests/http_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/http_tests.cpp b/3rdparty/libprocess/src/tests/http_tests.cpp
index 533104c..9147679 100644
--- a/3rdparty/libprocess/src/tests/http_tests.cpp
+++ b/3rdparty/libprocess/src/tests/http_tests.cpp
@@ -461,7 +461,7 @@ TEST(HTTPTest, PathParse)
     http::path::parse(pattern, "/books/0304827484/chapters/3");
 
   ASSERT_SOME(parse);
-  EXPECT_EQ(4, parse.get().size());
+  EXPECT_EQ(4u, parse.get().size());
   EXPECT_SOME_EQ("books", parse.get().get("books"));
   EXPECT_SOME_EQ("0304827484", parse.get().get("isbn"));
   EXPECT_SOME_EQ("chapters", parse.get().get("chapters"));
@@ -470,14 +470,14 @@ TEST(HTTPTest, PathParse)
   parse = http::path::parse(pattern, "/books/0304827484");
 
   ASSERT_SOME(parse);
-  EXPECT_EQ(2, parse.get().size());
+  EXPECT_EQ(2u, parse.get().size());
   EXPECT_SOME_EQ("books", parse.get().get("books"));
   EXPECT_SOME_EQ("0304827484", parse.get().get("isbn"));
 
   parse = http::path::parse(pattern, "/books/0304827484/chapters");
 
   ASSERT_SOME(parse);
-  EXPECT_EQ(3, parse.get().size());
+  EXPECT_EQ(3u, parse.get().size());
   EXPECT_SOME_EQ("books", parse.get().get("books"));
   EXPECT_SOME_EQ("0304827484", parse.get().get("isbn"));
   EXPECT_SOME_EQ("chapters", parse.get().get("chapters"));
@@ -520,7 +520,7 @@ http::Response validateGetWithQuery(const http::Request& request)
   EXPECT_EQ("", request.body);
   EXPECT_NONE(request.url.fragment);
   EXPECT_EQ("bar", request.url.query.at("foo"));
-  EXPECT_EQ(1, request.url.query.size());
+  EXPECT_EQ(1u, request.url.query.size());
 
   return http::OK();
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/tests/io_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/io_tests.cpp b/3rdparty/libprocess/src/tests/io_tests.cpp
index b85c79f..66b610e 100644
--- a/3rdparty/libprocess/src/tests/io_tests.cpp
+++ b/3rdparty/libprocess/src/tests/io_tests.cpp
@@ -82,7 +82,7 @@ TEST_F(IOTest, Read)
   ASSERT_SOME(os::nonblock(pipes[1]));
 
   // Test reading nothing.
-  AWAIT_EXPECT_EQ(0, io::read(pipes[0], data, 0));
+  AWAIT_EXPECT_EQ(0u, io::read(pipes[0], data, 0));
 
   // Test discarded read.
   Future<size_t> future = io::read(pipes[0], data, 3);
@@ -202,13 +202,13 @@ TEST_F(IOTest, Write)
   ASSERT_SOME(os::nonblock(pipes[1]));
 
   // Test writing nothing.
-  AWAIT_EXPECT_EQ(0, io::write(pipes[1], (void*) "hi", 0));
+  AWAIT_EXPECT_EQ(0u, io::write(pipes[1], (void*) "hi", 0));
 
   // Test successful write.
-  AWAIT_EXPECT_EQ(2, io::write(pipes[1], (void*) "hi", 2));
+  AWAIT_EXPECT_EQ(2u, io::write(pipes[1], (void*) "hi", 2));
 
   char data[2];
-  AWAIT_EXPECT_EQ(2, io::read(pipes[0], data, 2));
+  AWAIT_EXPECT_EQ(2u, io::read(pipes[0], data, 2));
   EXPECT_EQ("hi", string(data, 2));
 
   // Test write to broken pipe.
@@ -271,9 +271,9 @@ TEST_F(IOTest, DISABLED_BlockingWrite)
   AWAIT_DISCARDED(future2);
 
   // Check after reading some data the first write remains pending.
-  ASSERT_LT(128, size);
+  ASSERT_LT(128u, size);
   char temp[128];
-  AWAIT_EXPECT_EQ(128, io::read(pipes[0], temp, 128));
+  AWAIT_EXPECT_EQ(128u, io::read(pipes[0], temp, 128));
 
   EXPECT_TRUE(future1.isPending());
 
@@ -281,7 +281,7 @@ TEST_F(IOTest, DISABLED_BlockingWrite)
   // first future to succeed since the second future should have been
   // completely discarded.
   length = 128; // To account for io::read above.
-  while (length < data.size()) {
+  while (length < static_cast<ssize_t>(data.size())) {
     Future<size_t> read = io::read(pipes[0], temp, 128);
     AWAIT_READY(read);
     length += read.get();
@@ -394,7 +394,7 @@ TEST_F(IOTest, Peek)
   ASSERT_SOME(os::nonblock(sockets[1]));
 
   // Test peeking nothing.
-  AWAIT_EXPECT_EQ(0, io::peek(sockets[0], data, 0, 0));
+  AWAIT_EXPECT_EQ(0u, io::peek(sockets[0], data, 0, 0));
 
   // Test discarded peek.
   Future<size_t> future = io::peek(sockets[0], data, sizeof(data), 1);

http://git-wip-us.apache.org/repos/asf/mesos/blob/b833fbad/3rdparty/libprocess/src/tests/subprocess_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/subprocess_tests.cpp b/3rdparty/libprocess/src/tests/subprocess_tests.cpp
index 0dc1c62..c6dbe17 100644
--- a/3rdparty/libprocess/src/tests/subprocess_tests.cpp
+++ b/3rdparty/libprocess/src/tests/subprocess_tests.cpp
@@ -717,7 +717,7 @@ TEST_F(SubprocessTest, Flags)
   Flags flags2;
   Try<flags::Warnings> load = flags2.load(None(), argc, argv);
   ASSERT_SOME(load);
-  EXPECT_EQ(0, load->warnings.size());
+  EXPECT_EQ(0u, load->warnings.size());
 
   EXPECT_EQ(flags.b, flags2.b);
   EXPECT_EQ(flags.i, flags2.i);