Long overdue update to 1.4.20 and take maintainership

ok sthen@
This commit is contained in:
giovanni 2014-07-15 18:17:06 +00:00
parent 0456eac2c4
commit a7196718e9
7 changed files with 36 additions and 101 deletions

View File

@ -1,26 +1,27 @@
# $OpenBSD: Makefile,v 1.24 2014/01/05 13:32:43 jasper Exp $
# $OpenBSD: Makefile,v 1.25 2014/07/15 18:17:06 giovanni Exp $
COMMENT= distributed memory object caching system
DISTNAME= memcached-1.4.14
REVISION= 1
DISTNAME= memcached-1.4.20
CATEGORIES= misc
HOMEPAGE= http://www.memcached.org/
MAINTAINER= Giovanni Bechis <giovanni@openbsd.org>
# BSD
PERMIT_PACKAGE_CDROM= Yes
WANTLIB= c event pthread
MASTER_SITES= https://memcached.googlecode.com/files/
MASTER_SITES0= ${HOMEPAGE}/dist/
MASTER_SITES= http://memcached.org/files/
CONFIGURE_STYLE= gnu
CONFIGURE_ARGS= --with-libevent=/usr \
--disable-coverage \
--disable-docs
TEST_TARGET= test
TEST_DEPENDS= devel/p5-Test-MockSleep
post-install:
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/memcached

View File

@ -1,2 +1,2 @@
SHA256 (memcached-1.4.14.tar.gz) = 8uKtjujSVvLDdI1/dB3N39Cra97Ob6HBhIToPzERVu8=
SIZE (memcached-1.4.14.tar.gz) = 321262
SHA256 (memcached-1.4.20.tar.gz) = JdEhQI7tCxUiMI/zUggZsTDwS6BVTGimc68jqRWlQBg=
SIZE (memcached-1.4.20.tar.gz) = 337380

View File

@ -1,7 +1,7 @@
$OpenBSD: patch-configure,v 1.4 2012/08/23 17:51:22 ajacoutot Exp $
--- configure.orig Thu Feb 2 21:24:20 2012
+++ configure Fri Mar 30 21:27:25 2012
@@ -6261,7 +6261,7 @@ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
$OpenBSD: patch-configure,v 1.5 2014/07/15 18:17:06 giovanni Exp $
--- configure.orig Sun May 11 09:38:24 2014
+++ configure Mon Jul 14 00:10:07 2014
@@ -6368,7 +6368,7 @@ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
elif test "$GCC" = "yes"
then
GCC_VERSION=`$CC -dumpversion`

View File

@ -1,13 +1,13 @@
$OpenBSD: patch-items_c,v 1.6 2014/01/05 13:32:43 jasper Exp $
$OpenBSD: patch-items_c,v 1.7 2014/07/15 18:17:06 giovanni Exp $
printf format string fix for long long time_t
and fix buffer-overrun when logging keys (CVE-2013-0179)
https://github.com/memcached/memcached/commit/fbe823d9a61b5149cd6e3b5e17bd28dd3b8dd760
--- items.c.orig Mon Jul 30 22:23:37 2012
+++ items.c Thu Jan 2 17:02:16 2014
@@ -389,9 +389,9 @@ char *do_item_cachedump(const unsigned int slabs_clsid
--- items.c.orig Fri May 2 00:10:56 2014
+++ items.c Mon Jul 14 00:10:07 2014
@@ -410,9 +410,9 @@ char *do_item_cachedump(const unsigned int slabs_clsid
/* Copy the key since it may not be null-terminated in the struct */
strncpy(key_temp, ITEM_key(it), it->nkey);
key_temp[it->nkey] = 0x00; /* terminate */
@ -19,23 +19,3 @@ https://github.com/memcached/memcached/commit/fbe823d9a61b5149cd6e3b5e17bd28dd3b
if (bufcurr + len + 6 > memlimit) /* 6 is END\r\n\0 */
break;
memcpy(buffer + bufcurr, temp, len);
@@ -510,9 +510,17 @@ item *do_item_get(const char *key, const size_t nkey,
if (settings.verbose > 2) {
if (it == NULL) {
- fprintf(stderr, "> NOT FOUND %s", key);
+ int ii;
+ fprintf(stderr, "> NOT FOUND ");
+ for (ii = 0; ii < nkey; ++ii) {
+ fprintf(stderr, "%c", key[ii]);
+ }
} else {
- fprintf(stderr, "> FOUND KEY %s", ITEM_key(it));
+ int ii;
+ fprintf(stderr, "> FOUND KEY ");
+ for (ii = 0; ii < it->nkey; ++ii) {
+ fprintf(stderr, "%c", ITEM_key(it)[ii]);
+ }
was_found++;
}
}

View File

@ -1,41 +0,0 @@
$OpenBSD: patch-memcached_c,v 1.8 2014/01/05 13:32:43 jasper Exp $
buffer-overrun when logging keys (CVE-2013-0179)
https://github.com/memcached/memcached/commit/fbe823d9a61b5149cd6e3b5e17bd28dd3b8dd760
and fix segfault on specially crafted packet (CVE-2011-4971)
https://github.com/memcached/memcached/commit/6695ccbc525c36d693aaa3e8337b36aa0c784424
--- memcached.c.orig Mon Jul 30 22:26:47 2012
+++ memcached.c Thu Jan 2 16:59:32 2014
@@ -2149,7 +2149,12 @@ static void process_bin_delete(conn *c) {
assert(c != NULL);
if (settings.verbose > 1) {
- fprintf(stderr, "Deleting %s\n", key);
+ int ii;
+ fprintf(stderr, "Deleting ");
+ for (ii = 0; ii < nkey; ++ii) {
+ fprintf(stderr, "%c", key[ii]);
+ }
+ fprintf(stderr, "\n");
}
if (settings.detail_enabled) {
@@ -3863,6 +3868,16 @@ static void drive_machine(conn *c) {
complete_nread(c);
break;
}
+
+ /* Check if rbytes < 0, to prevent crash */
+ if (c->rlbytes < 0) {
+ if (settings.verbose) {
+ fprintf(stderr, "Invalid rlbytes to read: len %d\n", c->rlbytes);
+ }
+ conn_set_state(c, conn_closing);
+ break;
+ }
+
/* first check if we have leftovers in the conn_read buffer */
if (c->rbytes > 0) {
int tocopy = c->rbytes > c->rlbytes ? c->rlbytes : c->rbytes;

View File

@ -1,28 +1,22 @@
$OpenBSD: patch-t_issue_192_t,v 1.1 2014/01/05 13:32:43 jasper Exp $
$OpenBSD: patch-t_issue_192_t,v 1.2 2014/07/15 18:17:06 giovanni Exp $
Test case for CVE-2011-4971
https://github.com/memcached/memcached/commit/6695ccbc525c36d693aaa3e8337b36aa0c784424
--- t/issue_192.t.orig Thu Jan 2 16:48:36 2014
+++ t/issue_192.t Thu Jan 2 16:48:36 2014
@@ -0,0 +1,20 @@
+#!/usr/bin/perl
+
+use strict;
+use Test::More tests => 2;
+use FindBin qw($Bin);
+use lib "$Bin/lib";
+use MemcachedTest;
+
+my $server = new_memcached();
+my $sock = $server->sock;
+
+ok($server->new_sock, "opened new socket");
+
+print $sock "\x80\x12\x00\x01\x08\x00\x00\x00\xff\xff\xff\xe8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\x01\x00\x00\x00\x00\x00\x00\x00\x00\x000\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
+
+sleep 0.5;
+ok($server->new_sock, "failed to open new socket");
+
+
+
--- t/issue_192.t.orig Mon Apr 28 07:51:18 2014
+++ t/issue_192.t Mon Jul 14 11:38:18 2014
@@ -2,6 +2,7 @@
use strict;
use Test::More tests => 2;
+use Test::MockSleep;
use FindBin qw($Bin);
use lib "$Bin/lib";
use MemcachedTest;
@@ -15,6 +16,3 @@ print $sock "\x80\x12\x00\x01\x08\x00\x00\x00\xff\xff\
sleep 0.5;
ok($server->new_sock, "failed to open new socket");
-
-
-

View File

@ -1,4 +1,4 @@
@comment $OpenBSD: PLIST,v 1.6 2011/12/25 14:37:28 sebastia Exp $
@comment $OpenBSD: PLIST,v 1.7 2014/07/15 18:17:06 giovanni Exp $
@newgroup _memcached:637
@newuser _memcached:637:_memcached:daemon:memcache daemon:/var/empty:/sbin/nologin
@bin bin/memcached
@ -8,4 +8,5 @@ include/memcached/protocol_binary.h
share/doc/memcached/
share/doc/memcached/protocol.txt
share/doc/memcached/readme.txt
share/doc/memcached/threads.txt
@rcscript ${RCDIR}/memcached