]> git.saurik.com Git - redis.git/blobdiff - src/redis.c
Fixed a memory leak with replication
[redis.git] / src / redis.c
index a403bc92d24f25cf18beb9f8780f5dc36f0b7223..557b361a5bb6d2c702951ae485e6c6c7d686d3a0 100644 (file)
@@ -305,7 +305,7 @@ void redisLogFromHandler(int level, const char *msg) {
         (server.logfile == NULL && server.daemonize)) return;
     fd = server.logfile ?
         open(server.logfile, O_APPEND|O_CREAT|O_WRONLY, 0644) :
-        STDIN_FILENO;
+        STDOUT_FILENO;
     if (fd == -1) return;
     ll2string(buf,sizeof(buf),getpid());
     write(fd,"[",1);
@@ -316,7 +316,7 @@ void redisLogFromHandler(int level, const char *msg) {
     write(fd,") ",2);
     write(fd,msg,strlen(msg));
     write(fd,"\n",1);
-    close(fd);
+    if (server.logfile) close(fd);
 }
 
 /* Redis generally does not try to recover from out of memory conditions
@@ -961,16 +961,11 @@ void createSharedObjects(void) {
     shared.space = createObject(REDIS_STRING,sdsnew(" "));
     shared.colon = createObject(REDIS_STRING,sdsnew(":"));
     shared.plus = createObject(REDIS_STRING,sdsnew("+"));
-    shared.select0 = createStringObject("select 0\r\n",10);
-    shared.select1 = createStringObject("select 1\r\n",10);
-    shared.select2 = createStringObject("select 2\r\n",10);
-    shared.select3 = createStringObject("select 3\r\n",10);
-    shared.select4 = createStringObject("select 4\r\n",10);
-    shared.select5 = createStringObject("select 5\r\n",10);
-    shared.select6 = createStringObject("select 6\r\n",10);
-    shared.select7 = createStringObject("select 7\r\n",10);
-    shared.select8 = createStringObject("select 8\r\n",10);
-    shared.select9 = createStringObject("select 9\r\n",10);
+
+    for (j = 0; j < REDIS_SHARED_SELECT_CMDS; j++) {
+        shared.select[j] = createObject(REDIS_STRING,
+            sdscatprintf(sdsempty(),"select %d\r\n", j));
+    }
     shared.messagebulk = createStringObject("$7\r\nmessage\r\n",13);
     shared.pmessagebulk = createStringObject("$8\r\npmessage\r\n",14);
     shared.subscribebulk = createStringObject("$9\r\nsubscribe\r\n",15);