Hello community, here is the log from the commit of package redis for openSUSE:Factory checked in at 2015-05-18 22:24:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/redis (Old) and /work/SRC/openSUSE:Factory/.redis.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "redis" Changes: -------- --- /work/SRC/openSUSE:Factory/redis/redis.changes 2015-04-03 14:34:46.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.redis.new/redis.changes 2015-05-18 22:24:11.000000000 +0200 @@ -1,0 +2,9 @@ +Sat May 16 22:03:00 UTC 2015 - Led <led...@gmail.com> + +- update to 3.0.1 + * Sentinel memory leak due to hiredis fixed. + * Sentinel memory leak on duplicated instance. + * Redis crash on Lua reaching output buffer limits. + * Sentinel flushes config on +slave events. + +------------------------------------------------------------------- Old: ---- redis-3.0.0.tar.gz New: ---- redis-3.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ redis.spec ++++++ --- /var/tmp/diff_new_pack.5SRu6N/_old 2015-05-18 22:24:12.000000000 +0200 +++ /var/tmp/diff_new_pack.5SRu6N/_new 2015-05-18 22:24:12.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package redis # -# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -15,6 +15,7 @@ # Please submit bugfixes or comments via http://bugs.opensuse.org/ # + %if 0%{?suse_version} > 1230 %bcond_without systemd %else @@ -26,7 +27,7 @@ %define _conf_dir %{_sysconfdir}/%{name} Name: redis -Version: 3.0.0 +Version: 3.0.1 Release: 0 Summary: Persistent key-value database License: BSD-3-Clause ++++++ redis-3.0.0.tar.gz -> redis-3.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/00-RELEASENOTES new/redis-3.0.1/00-RELEASENOTES --- old/redis-3.0.0/00-RELEASENOTES 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/00-RELEASENOTES 2015-05-05 11:01:19.000000000 +0200 @@ -1,8 +1,6 @@ Redis 3.0 release notes ======================= -WARNING: Redis 3.0 is currently a BETA not suitable for production environments. - -------------------------------------------------------------------------------- Upgrade urgency levels: @@ -12,6 +10,15 @@ CRITICAL: There is a critical bug affecting MOST USERS. Upgrade ASAP. -------------------------------------------------------------------------------- +--[ Redis 3.0.1 ] Release date: 5 May 2015 + +Upgrade urgency: LOW for Redis, Sentinel, Cluster. + +* [FIX] Sentinel memory leak due to hiredis fixed. (Salvatore Sanfilippo) +* [FIX] Sentinel memory leak on duplicated instance. (Charsyam) +* [FIX] Redis crash on Lua reaching output buffer limits. (Yossi Gottlieb) +* [FIX] Sentinel flushes config on +slave events. (Bill Anderson) + --[ Redis 3.0.0 ] Release date: 1 Apr 2015 >> What's new in Redis 3.0 compared to Redis 2.8? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/COPYING new/redis-3.0.1/COPYING --- old/redis-3.0.0/COPYING 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/COPYING 2015-05-05 11:01:19.000000000 +0200 @@ -1,4 +1,4 @@ -Copyright (c) 2006-2014, Salvatore Sanfilippo +Copyright (c) 2006-2015, Salvatore Sanfilippo All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/deps/hiredis/async.c new/redis-3.0.1/deps/hiredis/async.c --- old/redis-3.0.0/deps/hiredis/async.c 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/deps/hiredis/async.c 2015-05-05 11:01:19.000000000 +0200 @@ -443,6 +443,7 @@ if (((redisReply*)reply)->type == REDIS_REPLY_ERROR) { c->err = REDIS_ERR_OTHER; snprintf(c->errstr,sizeof(c->errstr),"%s",((redisReply*)reply)->str); + c->reader->fn->freeObject(reply); __redisAsyncDisconnect(ac); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/networking.c new/redis-3.0.1/src/networking.c --- old/redis-3.0.0/src/networking.c 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/networking.c 2015-05-05 11:01:19.000000000 +0200 @@ -797,7 +797,7 @@ * a context where calling freeClient() is not possible, because the client * should be valid for the continuation of the flow of the program. */ void freeClientAsync(redisClient *c) { - if (c->flags & REDIS_CLOSE_ASAP) return; + if (c->flags & REDIS_CLOSE_ASAP || c->flags & REDIS_LUA_CLIENT) return; c->flags |= REDIS_CLOSE_ASAP; listAddNodeTail(server.clients_to_close,c); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/sds.c new/redis-3.0.1/src/sds.c --- old/redis-3.0.0/src/sds.c 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/sds.c 2015-05-05 11:01:19.000000000 +0200 @@ -71,7 +71,7 @@ return sdsnewlen("",0); } -/* Create a new sds string starting from a null termined C string. */ +/* Create a new sds string starting from a null terminated C string. */ sds sdsnew(const char *init) { size_t initlen = (init == NULL) ? 0 : strlen(init); return sdsnewlen(init, initlen); @@ -557,7 +557,7 @@ * Example: * * s = sdsnew("AA...AA.a.aa.aHelloWorld :::"); - * s = sdstrim(s,"A. :"); + * s = sdstrim(s,"Aa. :"); * printf("%s\n", s); * * Output will be just "Hello World". @@ -1083,6 +1083,7 @@ int oldfree; sdsfree(x); + sdsfree(y); x = sdsnew("0"); sh = (void*) (x-(sizeof(struct sdshdr))); test_cond("sdsnew() free/len buffers", sh->len == 1 && sh->free == 0); @@ -1095,6 +1096,8 @@ test_cond("sdsIncrLen() -- content", x[0] == '0' && x[1] == '1'); test_cond("sdsIncrLen() -- len", sh->len == 2); test_cond("sdsIncrLen() -- free", sh->free == oldfree-1); + + sdsfree(x); } } test_report() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/sentinel.c new/redis-3.0.1/src/sentinel.c --- old/redis-3.0.0/src/sentinel.c 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/sentinel.c 2015-05-05 11:01:19.000000000 +0200 @@ -923,6 +923,7 @@ else if (flags & SRI_SENTINEL) table = master->sentinels; sdsname = sdsnew(name); if (dictFind(table,sdsname)) { + releaseSentinelAddr(addr); sdsfree(sdsname); errno = EBUSY; return NULL; @@ -1269,10 +1270,7 @@ slave = createSentinelRedisInstance(NULL,SRI_SLAVE,slaves[j]->ip, slaves[j]->port, master->quorum, master); releaseSentinelAddr(slaves[j]); - if (slave) { - sentinelEvent(REDIS_NOTICE,"+slave",slave,"%@"); - sentinelFlushConfig(); - } + if (slave) sentinelEvent(REDIS_NOTICE,"+slave",slave,"%@"); } zfree(slaves); @@ -1844,6 +1842,7 @@ atoi(port), ri->quorum, ri)) != NULL) { sentinelEvent(REDIS_NOTICE,"+slave",slave,"%@"); + sentinelFlushConfig(); } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/sha1.c new/redis-3.0.1/src/sha1.c --- old/redis-3.0.0/src/sha1.c 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/sha1.c 2015-05-05 11:01:19.000000000 +0200 @@ -23,7 +23,7 @@ #include <stdio.h> #include <string.h> -#include <sys/types.h> /* for u_int*_t */ +#include <stdint.h> #include "solarisfixes.h" #include "sha1.h" #include "config.h" @@ -53,12 +53,12 @@ /* Hash a single 512-bit block. This is the core of the algorithm. */ -void SHA1Transform(u_int32_t state[5], const unsigned char buffer[64]) +void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]) { - u_int32_t a, b, c, d, e; + uint32_t a, b, c, d, e; typedef union { unsigned char c[64]; - u_int32_t l[16]; + uint32_t l[16]; } CHAR64LONG16; #ifdef SHA1HANDSOFF CHAR64LONG16 block[1]; /* use array to appear as a pointer */ @@ -128,9 +128,9 @@ /* Run your data through this. */ -void SHA1Update(SHA1_CTX* context, const unsigned char* data, u_int32_t len) +void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len) { - u_int32_t i, j; + uint32_t i, j; j = context->count[0]; if ((context->count[0] += len << 3) < j) @@ -168,7 +168,7 @@ for (i = 0; i < 2; i++) { - u_int32_t t = context->count[i]; + uint32_t t = context->count[i]; int j; for (j = 0; j < 4; t >>= 8, j++) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/sha1.h new/redis-3.0.1/src/sha1.h --- old/redis-3.0.0/src/sha1.h 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/sha1.h 2015-05-05 11:01:19.000000000 +0200 @@ -6,12 +6,12 @@ */ typedef struct { - u_int32_t state[5]; - u_int32_t count[2]; + uint32_t state[5]; + uint32_t count[2]; unsigned char buffer[64]; } SHA1_CTX; -void SHA1Transform(u_int32_t state[5], const unsigned char buffer[64]); +void SHA1Transform(uint32_t state[5], const unsigned char buffer[64]); void SHA1Init(SHA1_CTX* context); -void SHA1Update(SHA1_CTX* context, const unsigned char* data, u_int32_t len); +void SHA1Update(SHA1_CTX* context, const unsigned char* data, uint32_t len); void SHA1Final(unsigned char digest[20], SHA1_CTX* context); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/redis-3.0.0/src/version.h new/redis-3.0.1/src/version.h --- old/redis-3.0.0/src/version.h 2015-04-01 16:01:44.000000000 +0200 +++ new/redis-3.0.1/src/version.h 2015-05-05 11:01:19.000000000 +0200 @@ -1 +1 @@ -#define REDIS_VERSION "3.0.0" +#define REDIS_VERSION "3.0.1"