memcached 1.3.3のgrow_stats_bufのpatch

statsでセグフォる件

--- memcached-1.3.3.orig/memcached.c    2009-04-06 18:24:53.000000000 +0900
+++ memcached-1.3.3/memcached.c 2009-04-06 19:00:39.000000000 +0900
@@ -1335,15 +1335,14 @@
 }
 
 static bool grow_stats_buf(conn *c, size_t needed) {
-    size_t size = c->stats.size - c->stats.offset;
-    size_t nsize = size;
+    size_t nsize = c->stats.size;
     bool rv = true;
 
-    while (nsize < needed) {
-        nsize = nsize << 1;
+    while (nsize < needed + c->stats.offset) {
+        nsize = nsize + 2048;
     }
 
-    if (nsize > size) {
+    if (nsize > c->stats.size) {
         char *ptr = realloc(c->stats.buffer, nsize);
         if (ptr) {
             c->stats.buffer = ptr;
created by blog.nomadscafe.jp

コメント

コメントはありません

コメントを投稿

コメントを投稿するにはログインが必要です