[Pkg-mongodb-maintainers] [pkg-mongodb] 316/394: Remove applied patches
Apollon Oikonomopoulos
apoikos at moszumanska.debian.org
Wed Sep 21 13:59:53 UTC 2016
This is an automated email from the git hooks/post-receive script.
apoikos pushed a commit to branch master
in repository pkg-mongodb.
commit 8fa677f10b6121c2a496aa8fb550df5de35bf9ef
Author: Laszlo Boszormenyi (GCS) <gcs at debian.org>
Date: Tue Jun 30 16:49:14 2015 +0000
Remove applied patches
---
debian/changelog | 1 +
.../3a7e85ea1f672f702660e5472566234b1d19038e.patch | 53 --
.../656f78711632a5dc37221422c99e3c4619bcc58f.patch | 22 -
.../8b9242837510e6410ddcf4f19969da4c7b01b2f7.patch | 25 -
.../9105b69e1ded5b7d0d384d574103b0ee6bbb6122.patch | 801 ---------------------
.../cefb0ef38f050b73b2bf8211add55f3749753e0a.patch | 28 -
debian/patches/series | 5 -
7 files changed, 1 insertion(+), 934 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index 50ef986..d237151 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,7 @@
mongodb (1:2.4.14-1) unstable; urgency=low
* New upstream release.
+ * Remove applied patches.
-- Laszlo Boszormenyi (GCS) <gcs at debian.org> Sun, 31 May 2015 12:46:04 +0000
diff --git a/debian/patches/3a7e85ea1f672f702660e5472566234b1d19038e.patch b/debian/patches/3a7e85ea1f672f702660e5472566234b1d19038e.patch
deleted file mode 100644
index 42288d9..0000000
--- a/debian/patches/3a7e85ea1f672f702660e5472566234b1d19038e.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 3a7e85ea1f672f702660e5472566234b1d19038e Mon Sep 17 00:00:00 2001
-From: Eliot Horowitz <eliot at 10gen.com>
-Date: Wed, 11 Feb 2015 22:12:37 -0500
-Subject: [PATCH] SERVER-17264: improve bson validation for utf-8 strings
-
-(cherry picked from commit 394a8569ff14a215c0691aa34440227b2e62a4de)
-
-Conflicts:
- src/mongo/bson/bson_validate_test.cpp
----
- src/mongo/bson/bson_validate.cpp | 5 +++++
- src/mongo/bson/bson_validate_test.cpp | 14 ++++++++++++++
- 2 files changed, 19 insertions(+)
-
-diff --git a/src/mongo/bson/bson_validate.cpp b/src/mongo/bson/bson_validate.cpp
-index 9ac0bcb..a7c95ad 100644
---- a/src/mongo/bson/bson_validate.cpp
-+++ b/src/mongo/bson/bson_validate.cpp
-@@ -62,6 +62,11 @@ namespace mongo {
- if ( !readNumber<int>( &sz ) )
- return Status( ErrorCodes::InvalidBSON, "invalid bson" );
-
-+ if ( sz <= 0 ) {
-+ // must have NULL at the very least
-+ return Status( ErrorCodes::InvalidBSON, "invalid bson");
-+ }
-+
- if ( out ) {
- *out = StringData( _buffer + _position, sz );
- }
-diff --git a/src/mongo/bson/bson_validate_test.cpp b/src/mongo/bson/bson_validate_test.cpp
-index 61e67f3..a36dbc5 100644
---- a/src/mongo/bson/bson_validate_test.cpp
-+++ b/src/mongo/bson/bson_validate_test.cpp
-@@ -213,4 +213,18 @@ namespace {
- ASSERT_NOT_OK(validateBSON(x.objdata(), x.objsize() / 2));
- }
-
-+ TEST(BSONValidateFast, StringHasSomething) {
-+ BufBuilder bb;
-+ BSONObjBuilder ob(bb);
-+ bb.appendChar(String);
-+ bb.appendStr("x", /*withNUL*/true);
-+ bb.appendNum(0);
-+ const BSONObj x = ob.done();
-+ ASSERT_EQUALS(5 // overhead
-+ + 1 // type
-+ + 2 // name
-+ + 4 // size
-+ , x.objsize());
-+ ASSERT_NOT_OK(validateBSON(x.objdata(), x.objsize()));
-+ }
- }
diff --git a/debian/patches/656f78711632a5dc37221422c99e3c4619bcc58f.patch b/debian/patches/656f78711632a5dc37221422c99e3c4619bcc58f.patch
deleted file mode 100644
index 603a2f9..0000000
--- a/debian/patches/656f78711632a5dc37221422c99e3c4619bcc58f.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 656f78711632a5dc37221422c99e3c4619bcc58f Mon Sep 17 00:00:00 2001
-From: Dan Pasette <dan at 10gen.com>
-Date: Mon, 27 Oct 2014 23:49:33 -0400
-Subject: [PATCH] SERVER-15673 fix typo in backport
-
----
- src/mongo/util/net/ssl_manager.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp
-index 0efdd7c..de49e38 100644
---- a/src/mongo/util/net/ssl_manager.cpp
-+++ b/src/mongo/util/net/ssl_manager.cpp
-@@ -142,7 +142,7 @@ namespace mongo {
- // Activate all bug workaround options, to support buggy client SSL's.
- // SSL_OP_NO_SSLv2 - Disable SSL v2 support
- // SSL_OP_NO_SSLv3 - Disable SSL v3 support
-- SSL_CTX_set_options(*context, SSL_OP_ALL|SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3);
-+ SSL_CTX_set_options(_context, SSL_OP_ALL|SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3);
-
- // If renegotiation is needed, don't return from recv() or send() until it's successful.
- // Note: this is for blocking sockets only.
diff --git a/debian/patches/8b9242837510e6410ddcf4f19969da4c7b01b2f7.patch b/debian/patches/8b9242837510e6410ddcf4f19969da4c7b01b2f7.patch
deleted file mode 100644
index 10a6617..0000000
--- a/debian/patches/8b9242837510e6410ddcf4f19969da4c7b01b2f7.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8b9242837510e6410ddcf4f19969da4c7b01b2f7 Mon Sep 17 00:00:00 2001
-From: Dan Pasette <dan at 10gen.com>
-Date: Mon, 27 Oct 2014 22:45:56 -0400
-Subject: [PATCH] SERVER-15673 Disable SSLv3 ciphers (CVE-2014-3566 "POODLE")
-
-(cherry picked from commit 035b5a90f56d653e930fcbe20c89f4dda7e48a30)
----
- src/mongo/util/net/ssl_manager.cpp | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp
-index dd8b3a2..0efdd7c 100644
---- a/src/mongo/util/net/ssl_manager.cpp
-+++ b/src/mongo/util/net/ssl_manager.cpp
-@@ -140,7 +140,9 @@ namespace mongo {
- _context);
-
- // Activate all bug workaround options, to support buggy client SSL's.
-- SSL_CTX_set_options(_context, SSL_OP_ALL);
-+ // SSL_OP_NO_SSLv2 - Disable SSL v2 support
-+ // SSL_OP_NO_SSLv3 - Disable SSL v3 support
-+ SSL_CTX_set_options(*context, SSL_OP_ALL|SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3);
-
- // If renegotiation is needed, don't return from recv() or send() until it's successful.
- // Note: this is for blocking sockets only.
diff --git a/debian/patches/9105b69e1ded5b7d0d384d574103b0ee6bbb6122.patch b/debian/patches/9105b69e1ded5b7d0d384d574103b0ee6bbb6122.patch
deleted file mode 100644
index 6476e86..0000000
--- a/debian/patches/9105b69e1ded5b7d0d384d574103b0ee6bbb6122.patch
+++ /dev/null
@@ -1,801 +0,0 @@
-From 9105b69e1ded5b7d0d384d574103b0ee6bbb6122 Mon Sep 17 00:00:00 2001
-From: Mark Benvenuto <mark.benvenuto at mongodb.com>
-Date: Mon, 11 Aug 2014 18:48:46 -0400
-Subject: [PATCH] SERVER-14268: Backport from 2.6 to 2.4
-
----
- src/mongo/db/SConscript | 11 +++
- src/mongo/db/dbmessage.cpp | 134 ++++++++++++++++++++++++++++++++
- src/mongo/db/dbmessage.h | 155 ++++++++++++-------------------------
- src/mongo/db/dbmessage_test.cpp | 143 ++++++++++++++++++++++++++++++++++
- src/mongo/db/instance.cpp | 65 +++++++++-------
- src/mongo/s/cursors.cpp | 11 +--
- src/mongo/s/request.cpp | 3 +-
- src/mongo/s/strategy_shard.cpp | 11 ++-
- src/mongo/s/writeback_listener.cpp | 2 +-
- src/mongo/tools/sniffer.cpp | 6 +-
- src/mongo/util/net/message.h | 10 ++-
- 11 files changed, 401 insertions(+), 150 deletions(-)
- create mode 100644 src/mongo/db/dbmessage_test.cpp
-
-diff --git a/src/mongo/db/SConscript b/src/mongo/db/SConscript
-index 2d3a4f6..8ac7897 100644
---- a/src/mongo/db/SConscript
-+++ b/src/mongo/db/SConscript
-@@ -13,3 +13,14 @@ env.StaticLibrary('common', ['field_ref.cpp'],
- '$BUILD_DIR/mongo/foundation'])
-
- env.CppUnitTest('field_ref_test', ['field_ref_test.cpp'], LIBDEPS=['common'])
-+
-+env.CppUnitTest(
-+ target="dbmessage_test",
-+ source=[
-+ "dbmessage_test.cpp"
-+ ],
-+ LIBDEPS=[
-+ "common",
-+ "$BUILD_DIR/mongo/clientdriver",
-+ ],
-+)
-diff --git a/src/mongo/db/dbmessage.cpp b/src/mongo/db/dbmessage.cpp
-index 3f1e866..aebe88b 100644
---- a/src/mongo/db/dbmessage.cpp
-+++ b/src/mongo/db/dbmessage.cpp
-@@ -52,6 +52,140 @@ namespace mongo {
- return ss.str();
- }
-
-+ DbMessage::DbMessage(const Message& msg) : _msg(msg), _nsStart(NULL), _mark(NULL), _nsLen(0) {
-+ // for received messages, Message has only one buffer
-+ _theEnd = _msg.singleData()->_data + _msg.singleData()->dataLen();
-+ _nextjsobj = _msg.singleData()->_data;
-+
-+ _reserved = readAndAdvance<int>();
-+
-+ // Read packet for NS
-+ if (messageShouldHaveNs()) {
-+
-+ // Limit = buffer size of message -
-+ // (first int4 in message which is either flags or a zero constant)
-+ size_t limit = _msg.singleData()->dataLen() - sizeof(int);
-+
-+ _nsStart = _nextjsobj;
-+ _nsLen = strnlen(_nsStart, limit);
-+
-+ // Validate there is room for a null byte in the buffer
-+ // Strings can be zero length
-+ uassert(18633, "Failed to parse ns string", _nsLen <= (limit - 1));
-+
-+ _nextjsobj += _nsLen + 1; // skip namespace + null
-+ }
-+ }
-+
-+ const char * DbMessage::getns() const {
-+ verify(messageShouldHaveNs());
-+ return _nsStart;
-+ }
-+
-+ long long DbMessage::getInt64(int offsetBytes) const {
-+ verify(messageShouldHaveNs());
-+ const char* p = _nsStart + _nsLen + 1;
-+ checkReadOffset<long long>(p, offsetBytes);
-+
-+ return ((reinterpret_cast<const long long*>(p + offsetBytes)))[0];
-+ }
-+
-+ int DbMessage::getQueryNToReturn() const {
-+ verify(messageShouldHaveNs());
-+ const char* p = _nsStart + _nsLen + 1;
-+ checkRead<int>(p, 2);
-+
-+ return ((reinterpret_cast<const int*>(p)))[1];
-+ }
-+
-+
-+ int DbMessage::getFlags() const {
-+ verify(messageShouldHaveNs());
-+ const char* p = _nsStart + _nsLen + 1;
-+ checkRead<int>(p, 1);
-+
-+ return ((reinterpret_cast<const int*>(p)))[0];
-+ }
-+
-+ void DbMessage::setFlags(int value) {
-+ verify(messageShouldHaveNs());
-+ char* p = const_cast<char*>(_nsStart) + _nsLen + 1;
-+ checkRead<int>(p, 1);
-+
-+ ((reinterpret_cast<int*>(p)))[0] = value;
-+ }
-+
-+
-+ int DbMessage::pullInt() {
-+ return readAndAdvance<int>();
-+ }
-+
-+ long long DbMessage::pullInt64() {
-+ return readAndAdvance<long long>();
-+ }
-+
-+ const long long* DbMessage::getArray(size_t count) const {
-+ checkRead<long long>(_nextjsobj, count);
-+ return reinterpret_cast<const long long*>(_nextjsobj);
-+ }
-+
-+ BSONObj DbMessage::nextJsObj() {
-+ massert(10304,
-+ "Client Error: Remaining data too small for BSON object",
-+ _nextjsobj != NULL && _theEnd - _nextjsobj >= 5);
-+
-+ if (cmdLine.objcheck) {
-+ Status status = validateBSON(_nextjsobj, _theEnd - _nextjsobj);
-+ massert(10307,
-+ str::stream() << "Client Error: bad object in message: " << status.reason(),
-+ status.isOK());
-+ }
-+
-+ BSONObj js(_nextjsobj);
-+ verify(js.objsize() >= 5);
-+ verify(js.objsize() <= (_theEnd - _nextjsobj));
-+
-+ _nextjsobj += js.objsize();
-+ if (_nextjsobj >= _theEnd)
-+ _nextjsobj = NULL;
-+ return js;
-+ }
-+
-+ void DbMessage::markReset(const char * toMark) {
-+ if (toMark == NULL) {
-+ toMark = _mark;
-+ }
-+
-+ verify(toMark);
-+ _nextjsobj = toMark;
-+ }
-+
-+ template<typename T>
-+ void DbMessage::checkRead(const char* start, size_t count) const {
-+ if ((_theEnd - start) < static_cast<int>(sizeof(T) * count)) {
-+ uassert(18634, "Not enough data to read", false);
-+ }
-+ }
-+
-+ template<typename T>
-+ void DbMessage::checkReadOffset(const char* start, size_t offset) const {
-+ if ((_theEnd - start) < static_cast<int>(offset + sizeof(T))) {
-+ uassert(18626, "Not enough data to read", false);
-+ }
-+ }
-+
-+ template<typename T>
-+ T DbMessage::read() const {
-+ checkRead<T>(_nextjsobj, 1);
-+
-+ return *(reinterpret_cast<const T*>(_nextjsobj));
-+ }
-+
-+ template<typename T> T DbMessage::readAndAdvance() {
-+ T t = read<T>();
-+ _nextjsobj += sizeof(T);
-+ return t;
-+ }
-
- void replyToQuery(int queryResultFlags,
- AbstractMessagingPort* p, Message& requestMsg,
-diff --git a/src/mongo/db/dbmessage.h b/src/mongo/db/dbmessage.h
-index aeb9313..50658dd 100644
---- a/src/mongo/db/dbmessage.h
-+++ b/src/mongo/db/dbmessage.h
-@@ -110,138 +110,83 @@ namespace mongo {
- See http://dochub.mongodb.org/core/mongowireprotocol
- */
- class DbMessage {
-+ // Assume sizeof(int) == 4 bytes
-+ BOOST_STATIC_ASSERT(sizeof(int) == 4);
-+
- public:
-- DbMessage(const Message& _m) : m(_m) , mark(0) {
-- // for received messages, Message has only one buffer
-- theEnd = _m.singleData()->_data + _m.header()->dataLen();
-- char *r = _m.singleData()->_data;
-- reserved = (int *) r;
-- data = r + 4;
-- nextjsobj = data;
-+ // Note: DbMessage constructor reads the first 4 bytes and stores it in reserved
-+ DbMessage(const Message& msg);
-+
-+ // Indicates whether this message is expected to have a ns
-+ // or in the case of dbMsg, a string in the same place as ns
-+ bool messageShouldHaveNs() const {
-+ return (_msg.operation() >= dbMsg) && (_msg.operation() <= dbDelete);
- }
-
-- /** the 32 bit field before the ns
-+ /** the 32 bit field before the ns
- * track all bit usage here as its cross op
- * 0: InsertOption_ContinueOnError
- * 1: fromWriteback
- */
-- int& reservedField() { return *reserved; }
-+ int reservedField() const { return _reserved; }
-+ void setReservedField(int value) { _reserved = value; }
-
-- const char * getns() const {
-- return data;
-- }
-- void getns(Namespace& ns) const {
-- ns = data;
-- }
-+ const char * getns() const;
-+ int getQueryNToReturn() const;
-
-- const char * afterNS() const {
-- return data + strlen( data ) + 1;
-- }
-+ int getFlags() const;
-+ void setFlags(int value);
-
-- int getInt( int num ) const {
-- const int * foo = (const int*)afterNS();
-- return foo[num];
-- }
-+ long long getInt64(int offsetBytes) const;
-
-- int getQueryNToReturn() const {
-- return getInt( 1 );
-- }
-+ int pullInt();
-+ long long pullInt64();
-+ const long long* getArray(size_t count) const;
-
-- /**
-- * get an int64 at specified offsetBytes after ns
-- */
-- long long getInt64( int offsetBytes ) const {
-- const char * x = afterNS();
-- x += offsetBytes;
-- const long long * ll = (const long long*)x;
-- return ll[0];
-+ /* for insert and update msgs */
-+ bool moreJSObjs() const {
-+ return _nextjsobj != 0;
- }
-
-- void resetPull() { nextjsobj = data; }
-- int pullInt() const { return pullInt(); }
-- int& pullInt() {
-- if ( nextjsobj == data )
-- nextjsobj += strlen(data) + 1; // skip namespace
-- int& i = *((int *)nextjsobj);
-- nextjsobj += 4;
-- return i;
-- }
-- long long pullInt64() const {
-- return pullInt64();
-- }
-- long long &pullInt64() {
-- if ( nextjsobj == data )
-- nextjsobj += strlen(data) + 1; // skip namespace
-- long long &i = *((long long *)nextjsobj);
-- nextjsobj += 8;
-- return i;
-- }
-+ BSONObj nextJsObj();
-
-- OID* getOID() const {
-- return (OID *) (data + strlen(data) + 1); // skip namespace
-- }
-+ const Message& msg() const { return _msg; }
-
-- void getQueryStuff(const char *&query, int& ntoreturn) {
-- int *i = (int *) (data + strlen(data) + 1);
-- ntoreturn = *i;
-- i++;
-- query = (const char *) i;
-+ const char * markGet() const {
-+ return _nextjsobj;
- }
-
-- /* for insert and update msgs */
-- bool moreJSObjs() const {
-- return nextjsobj != 0;
-+ void markSet() {
-+ _mark = _nextjsobj;
- }
-- BSONObj nextJsObj() {
-- if ( nextjsobj == data ) {
-- nextjsobj += strlen(data) + 1; // skip namespace
-- massert( 13066 , "Message contains no documents", theEnd > nextjsobj );
-- }
-- massert( 10304,
-- "Client Error: Remaining data too small for BSON object",
-- theEnd - nextjsobj >= 5 );
--
-- if ( cmdLine.objcheck ) {
-- Status status = validateBSON( nextjsobj, theEnd - nextjsobj );
-- massert( 10307,
-- str::stream() << "Client Error: bad object in message: " << status.reason(),
-- status.isOK() );
-- }
-
-- BSONObj js(nextjsobj);
-- verify( js.objsize() >= 5 );
-- verify( js.objsize() < ( theEnd - data ) );
-+ void markReset(const char * toMark = NULL);
-
-- nextjsobj += js.objsize();
-- if ( nextjsobj >= theEnd )
-- nextjsobj = 0;
-- return js;
-- }
-+ private:
-+ // Check if we have enough data to read
-+ template<typename T>
-+ void checkRead(const char* start, size_t count = 0) const;
-
-- const Message& msg() const { return m; }
-+ template<typename T>
-+ void checkReadOffset(const char* start, size_t offset) const;
-
-- const char * markGet() {
-- return nextjsobj;
-- }
-+ // Read some type without advancing our position
-+ template<typename T>
-+ T read() const;
-
-- void markSet() {
-- mark = nextjsobj;
-- }
-+ // Read some type, and advance our position
-+ template<typename T> T readAndAdvance();
-
-- void markReset( const char * toMark = 0) {
-- if( toMark == 0 ) toMark = mark;
-- verify( toMark );
-- nextjsobj = toMark;
-- }
-+ const Message& _msg;
-+ int _reserved; // flags or zero depending on packet, starts the packet
-
-- private:
-- const Message& m;
-- int* reserved;
-- const char *data;
-- const char *nextjsobj;
-- const char *theEnd;
-+ const char* _nsStart; // start of namespace string, +4 from message start
-+ const char* _nextjsobj; // current position reading packet
-+ const char* _theEnd; // end of packet
-+
-+ const char* _mark;
-
-- const char * mark;
-+ unsigned int _nsLen;
- };
-
-
-diff --git a/src/mongo/db/dbmessage_test.cpp b/src/mongo/db/dbmessage_test.cpp
-new file mode 100644
-index 0000000..867a52d
---- /dev/null
-+++ b/src/mongo/db/dbmessage_test.cpp
-@@ -0,0 +1,143 @@
-+/**
-+ * Copyright (C) 2014 MongoDB Inc.
-+ *
-+ * This program is free software: you can redistribute it and/or modify
-+ * it under the terms of the GNU Affero General Public License, version 3,
-+ * as published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU Affero General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Affero General Public License
-+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ * As a special exception, the copyright holders give permission to link the
-+ * code of portions of this program with the OpenSSL library under certain
-+ * conditions as described in each individual source file and distribute
-+ * linked combinations including the program with the OpenSSL library. You
-+ * must comply with the GNU Affero General Public License in all respects
-+ * for all of the code used other than as permitted herein. If you modify
-+ * file(s) with this exception, you may extend this exception to your
-+ * version of the file(s), but you are not obligated to do so. If you do not
-+ * wish to do so, delete this exception statement from your version. If you
-+ * delete this exception statement from all source files in the program,
-+ * then also delete it in the license file.
-+ */
-+
-+#include <string>
-+
-+#include "mongo/bson/util/builder.h"
-+#include "mongo/db/dbmessage.h"
-+#include "mongo/unittest/unittest.h"
-+
-+namespace mongo {
-+ using std::string;
-+
-+ // Test if the reserved field is short of 4 bytes
-+ TEST(DBMessage1, ShortFlags) {
-+ BufBuilder b;
-+ string ns("test");
-+
-+ b.appendChar( 1 );
-+
-+ Message toSend;
-+ toSend.setData( dbDelete , b.buf() , b.len() );
-+
-+ ASSERT_THROWS(DbMessage d1(toSend), UserException);
-+ }
-+
-+ // Test a short NS missing a trailing null
-+ TEST(DBMessage1, BadNS) {
-+ BufBuilder b;
-+
-+ b.appendNum( static_cast<int>(1) );
-+ b.appendChar( 'b' );
-+ b.appendChar( 'a' );
-+ b.appendChar( 'd' );
-+ // Forget to append \0
-+
-+ Message toSend;
-+ toSend.setData( dbDelete , b.buf() , b.len() );
-+
-+ ASSERT_THROWS(DbMessage d1(toSend), UserException);
-+ }
-+
-+ // Test a valid kill message and try an extra pull
-+ TEST(DBMessage1, GoodKill) {
-+ BufBuilder b;
-+
-+ b.appendNum( static_cast<int>(1) );
-+ b.appendNum( static_cast<int>(3) );
-+
-+ Message toSend;
-+ toSend.setData( dbKillCursors , b.buf() , b.len() );
-+
-+ DbMessage d1(toSend);
-+ ASSERT_EQUALS(3, d1.pullInt());
-+
-+ ASSERT_THROWS(d1.pullInt(), UserException);
-+ }
-+
-+ // Try a bad read of a type too large
-+ TEST(DBMessage1, GoodKill2) {
-+ BufBuilder b;
-+
-+ b.appendNum( static_cast<int>(1) );
-+ b.appendNum( static_cast<int>(3) );
-+
-+ Message toSend;
-+ toSend.setData( dbKillCursors , b.buf() , b.len() );
-+
-+ DbMessage d1(toSend);
-+ ASSERT_THROWS(d1.pullInt64(), UserException);
-+ }
-+
-+ // Test a basic good insert, and an extra read
-+ TEST(DBMessage1, GoodInsert) {
-+ BufBuilder b;
-+ string ns("test");
-+
-+ b.appendNum( static_cast<int>(1) );
-+ b.appendStr(ns);
-+ b.appendNum( static_cast<int>(3) );
-+ b.appendNum( static_cast<int>(39) );
-+
-+ Message toSend;
-+ toSend.setData( dbInsert , b.buf() , b.len() );
-+
-+ DbMessage d1(toSend);
-+ ASSERT_EQUALS(3, d1.pullInt());
-+ ASSERT_EQUALS(39, d1.pullInt());
-+ ASSERT_THROWS(d1.pullInt(), UserException);
-+ }
-+
-+ // Test a basic good insert, and an extra read
-+ TEST(DBMessage1, GoodInsert2) {
-+ BufBuilder b;
-+ string ns("test");
-+
-+ b.appendNum( static_cast<int>(1) );
-+ b.appendStr(ns);
-+ b.appendNum( static_cast<int>(3) );
-+ b.appendNum( static_cast<int>(39) );
-+
-+ BSONObj bo = BSON( "ts" << 0 );
-+ bo.appendSelfToBufBuilder( b );
-+
-+ Message toSend;
-+ toSend.setData( dbInsert , b.buf() , b.len() );
-+
-+ DbMessage d1(toSend);
-+ ASSERT_EQUALS(3, d1.pullInt());
-+
-+
-+ ASSERT_EQUALS(39, d1.pullInt());
-+ BSONObj bo2 = d1.nextJsObj();
-+ ASSERT_THROWS(d1.nextJsObj(), MsgAssertionException);
-+ }
-+
-+
-+
-+} // mongo namespace
-diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp
-index cf3d084..c4fb9f7 100644
---- a/src/mongo/db/instance.cpp
-+++ b/src/mongo/db/instance.cpp
-@@ -339,10 +339,13 @@ namespace mongo {
- // before we lock...
- int op = m.operation();
- bool isCommand = false;
-- const char *ns = m.singleData()->_data + 4;
-+
-+ DbMessage dbmsg(m);
-
- if ( op == dbQuery ) {
-- if( strstr(ns, ".$cmd") ) {
-+ const char *ns = dbmsg.getns();
-+
-+ if (strstr(ns, ".$cmd")) {
- isCommand = true;
- opwrite(m);
- if( strstr(ns, ".$cmd.sys.") ) {
-@@ -406,7 +409,8 @@ namespace mongo {
- }
- else if ( op == dbMsg ) {
- // deprecated - replaced by commands
-- char *p = m.singleData()->_data;
-+ const char *p = dbmsg.getns();
-+
- int len = strlen(p);
- if ( len > 400 )
- out() << curTimeMillis64() % 10000 <<
-@@ -423,8 +427,6 @@ namespace mongo {
- }
- else {
- try {
-- const NamespaceString nsString( ns );
--
- // The following operations all require authorization.
- // dbInsert, dbUpdate and dbDelete can be easily pre-authorized,
- // here, but dbKillCursors cannot.
-@@ -433,28 +435,36 @@ namespace mongo {
- logThreshold = 10;
- receivedKillCursors(m);
- }
-- else if ( !nsString.isValid() ) {
-- // Only killCursors doesn't care about namespaces
-- uassert( 16257, str::stream() << "Invalid ns [" << ns << "]", false );
-- }
-- else if ( op == dbInsert ) {
-- receivedInsert(m, currentOp);
-- }
-- else if ( op == dbUpdate ) {
-- receivedUpdate(m, currentOp);
-- }
-- else if ( op == dbDelete ) {
-- receivedDelete(m, currentOp);
-- }
-- else {
-+ else if (op != dbInsert && op != dbUpdate && op != dbDelete) {
- mongo::log() << " operation isn't supported: " << op << endl;
- currentOp.done();
- shouldLog = true;
- }
-- }
-- catch ( UserException& ue ) {
-- tlog(3) << " Caught Assertion in " << opToString(op) << ", continuing "
-- << ue.toString() << endl;
-+ else {
-+ const char* ns = dbmsg.getns();
-+ const NamespaceString nsString(ns);
-+
-+ if (!nsString.isValid()) {
-+ uassert(16257, str::stream() << "Invalid ns [" << ns << "]", false);
-+ }
-+ else if (op == dbInsert) {
-+ receivedInsert(m, currentOp);
-+ }
-+ else if (op == dbUpdate) {
-+ receivedUpdate(m, currentOp);
-+ }
-+ else if (op == dbDelete) {
-+ receivedDelete(m, currentOp);
-+ }
-+ else {
-+ fassertFailed(18625);
-+ }
-+ }
-+ }
-+ catch (const UserException& ue) {
-+ setLastError(ue.getCode(), ue.getInfo().msg.c_str());
-+ LOG(3) << " Caught Assertion in " << opToString(op) << ", continuing "
-+ << ue.toString() << endl;
- debug.exceptionInfo = ue.getInfo();
- }
- catch ( AssertionException& e ) {
-@@ -492,9 +502,8 @@ namespace mongo {
- } /* assembleResponse() */
-
- void receivedKillCursors(Message& m) {
-- int *x = (int *) m.singleData()->_data;
-- x++; // reserved
-- int n = *x++;
-+ DbMessage dbmessage(m);
-+ int n = dbmessage.pullInt();
-
- uassert( 13659 , "sent 0 cursors to kill" , n != 0 );
- massert( 13658 , str::stream() << "bad kill cursors size: " << m.dataSize() , m.dataSize() == 8 + ( 8 * n ) );
-@@ -505,7 +514,9 @@ namespace mongo {
- verify( n < 30000 );
- }
-
-- int found = ClientCursor::eraseIfAuthorized(n, (long long *) x);
-+ const long long* cursorArray = dbmessage.getArray(n);
-+
-+ int found = ClientCursor::eraseIfAuthorized(n, (long long *)cursorArray);
-
- if ( logLevel > 0 || found != n ) {
- LOG( found == n ? 1 : 0 ) << "killcursors: found " << found << " of " << n << endl;
-diff --git a/src/mongo/s/cursors.cpp b/src/mongo/s/cursors.cpp
-index 4e904e3..4cec5a6 100644
---- a/src/mongo/s/cursors.cpp
-+++ b/src/mongo/s/cursors.cpp
-@@ -270,19 +270,20 @@ namespace mongo {
- }
-
- void CursorCache::gotKillCursors(Message& m ) {
-- int *x = (int *) m.singleData()->_data;
-- x++; // reserved
-- int n = *x++;
-+ DbMessage dbmessage(m);
-+ int n = dbmessage.pullInt();
-
- if ( n > 2000 ) {
- LOG( n < 30000 ? LL_WARNING : LL_ERROR ) << "receivedKillCursors, n=" << n << endl;
- }
-
--
- uassert( 13286 , "sent 0 cursors to kill" , n >= 1 );
- uassert( 13287 , "too many cursors to kill" , n < 30000 );
-+ massert( 18632 , str::stream() << "bad kill cursors size: " << m.dataSize(),
-+ m.dataSize() == 8 + ( 8 * n ) );
-+
-
-- long long * cursors = (long long *)x;
-+ const long long* cursors = dbmessage.getArray(n);
- AuthorizationManager* authManager =
- ClientBasic::getCurrent()->getAuthorizationManager();
- for ( int i=0; i<n; i++ ) {
-diff --git a/src/mongo/s/request.cpp b/src/mongo/s/request.cpp
-index ed9527d..033ed14 100644
---- a/src/mongo/s/request.cpp
-+++ b/src/mongo/s/request.cpp
-@@ -37,7 +37,6 @@ namespace mongo {
- Request::Request( Message& m, AbstractMessagingPort* p ) :
- _m(m) , _d( m ) , _p(p) , _didInit(false) {
-
-- verify( _d.getns() );
- _id = _m.header()->id;
-
- _clientInfo = ClientInfo::get();
-@@ -58,7 +57,7 @@ namespace mongo {
-
- // Deprecated, will move to the strategy itself
- void Request::reset() {
-- if ( _m.operation() == dbKillCursors ) {
-+ if ( !_d.messageShouldHaveNs()) {
- return;
- }
-
-diff --git a/src/mongo/s/strategy_shard.cpp b/src/mongo/s/strategy_shard.cpp
-index 560a4ac..c3d9ede 100644
---- a/src/mongo/s/strategy_shard.cpp
-+++ b/src/mongo/s/strategy_shard.cpp
-@@ -1043,8 +1043,9 @@ namespace mongo {
- // TODO: make this safer w/ shard add/remove
- //
-
-- int* opts = (int*)( r.d().afterNS() );
-- opts[0] |= UpdateOption_Broadcast; // this means don't check shard version in mongod
-+ int opts = r.d().getFlags();
-+ opts |= UpdateOption_Broadcast; // this means don't check shard version in mongod
-+ r.d().setFlags(opts);
- broadcastWrite( dbUpdate, r );
- return;
- }
-@@ -1192,8 +1193,10 @@ namespace mongo {
-
- if( ! shard ){
-
-- int * x = (int*)(r.d().afterNS());
-- x[0] |= RemoveOption_Broadcast; // this means don't check shard version in mongod
-+ int opts = r.d().getFlags();
-+ opts |= RemoveOption_Broadcast; // this means don't check shard version in mongod
-+ r.d().setFlags(opts);
-+
- broadcastWrite(dbDelete, r);
- return;
- }
-diff --git a/src/mongo/s/writeback_listener.cpp b/src/mongo/s/writeback_listener.cpp
-index 0695c4c..8eddf78 100644
---- a/src/mongo/s/writeback_listener.cpp
-+++ b/src/mongo/s/writeback_listener.cpp
-@@ -294,7 +294,7 @@ namespace mongo {
- Request r( msg , 0 );
- r.init();
-
-- r.d().reservedField() |= Reserved_FromWriteback;
-+ r.d().setReservedField(r.d().reservedField() | Reserved_FromWriteback);
-
- ClientInfo * ci = r.getClientInfo();
- if (!noauth) {
-diff --git a/src/mongo/tools/sniffer.cpp b/src/mongo/tools/sniffer.cpp
-index 5e2ac66..b6c97d9 100644
---- a/src/mongo/tools/sniffer.cpp
-+++ b/src/mongo/tools/sniffer.cpp
-@@ -329,9 +329,7 @@ void processMessage( Connection& c , Message& m ) {
- break;
- }
- case mongo::dbKillCursors: {
-- int *x = (int *) m.singleData()->_data;
-- x++; // reserved
-- int n = *x;
-+ int n = d.pullInt();
- out() << "\tkillCursors n: " << n << endl;
- break;
- }
-@@ -357,7 +355,7 @@ void processMessage( Connection& c , Message& m ) {
- if ( m.operation() == mongo::dbGetMore ) {
- DbMessage d( m );
- d.pullInt();
-- long long &cId = d.pullInt64();
-+ long long cId = d.pullInt64();
- cId = mapCursor[ c ][ cId ];
- }
- Message response;
-diff --git a/src/mongo/util/net/message.h b/src/mongo/util/net/message.h
-index ade0123..dee49f5 100644
---- a/src/mongo/util/net/message.h
-+++ b/src/mongo/util/net/message.h
-@@ -103,13 +103,18 @@ namespace mongo {
-
- #pragma pack(1)
- /* todo merge this with MSGHEADER (or inherit from it). */
-- struct MsgData {
-+ class MsgData {
-+ friend class Message;
-+ friend class DbMessage;
-+ friend class MessagingPort;
-+ public:
- int len; /* len of the msg, including this field */
- MSGID id; /* request/reply id's match... */
- MSGID responseTo; /* id of the message we are responding to */
- short _operation;
- char _flags;
- char _version;
-+
- int operation() const {
- return _operation;
- }
-@@ -118,7 +123,6 @@ namespace mongo {
- _version = 0;
- _operation = o;
- }
-- char _data[4];
-
- int& dataAsInt() {
- return *((int *) _data);
-@@ -140,6 +144,8 @@ namespace mongo {
- }
-
- int dataLen(); // len without header
-+ private:
-+ char _data[4]; //must be last member
- };
- const int MsgDataHeaderSize = sizeof(MsgData) - 4;
- inline int MsgData::dataLen() {
diff --git a/debian/patches/cefb0ef38f050b73b2bf8211add55f3749753e0a.patch b/debian/patches/cefb0ef38f050b73b2bf8211add55f3749753e0a.patch
deleted file mode 100644
index 1649777..0000000
--- a/debian/patches/cefb0ef38f050b73b2bf8211add55f3749753e0a.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cefb0ef38f050b73b2bf8211add55f3749753e0a Mon Sep 17 00:00:00 2001
-From: Mark Benvenuto <mark.benvenuto at mongodb.com>
-Date: Thu, 14 Aug 2014 17:33:12 -0400
-Subject: [PATCH] SERVER-14268: Backport from 2.6 to 2.4 - disable test
-
----
- src/mongo/db/SConscript | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/src/mongo/db/SConscript b/src/mongo/db/SConscript
-index 8ac7897..2d3a4f6 100644
---- a/src/mongo/db/SConscript
-+++ b/src/mongo/db/SConscript
-@@ -13,14 +13,3 @@ env.StaticLibrary('common', ['field_ref.cpp'],
- '$BUILD_DIR/mongo/foundation'])
-
- env.CppUnitTest('field_ref_test', ['field_ref_test.cpp'], LIBDEPS=['common'])
--
--env.CppUnitTest(
-- target="dbmessage_test",
-- source=[
-- "dbmessage_test.cpp"
-- ],
-- LIBDEPS=[
-- "common",
-- "$BUILD_DIR/mongo/clientdriver",
-- ],
--)
diff --git a/debian/patches/series b/debian/patches/series
index cf48e35..54d40fa 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -13,8 +13,3 @@
0004-Support-ppc64el-builds.patch
0012-support-gnu.patch
no-unused-function.patch
-9105b69e1ded5b7d0d384d574103b0ee6bbb6122.patch
-cefb0ef38f050b73b2bf8211add55f3749753e0a.patch
-8b9242837510e6410ddcf4f19969da4c7b01b2f7.patch
-656f78711632a5dc37221422c99e3c4619bcc58f.patch
-3a7e85ea1f672f702660e5472566234b1d19038e.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mongodb/pkg-mongodb.git
More information about the Pkg-mongodb-maintainers
mailing list