diff --git a/src/aof.c b/src/aof.c index 071657dd..79e2b9b7 100644 --- a/src/aof.c +++ b/src/aof.c @@ -536,16 +536,16 @@ void feedAppendOnlyFile(struct redisCommand *cmd, int dictid, robj **argv, int a buf = catAppendOnlyGenericCommand(buf,3,tmpargv); decrRefCount(tmpargv[0]); buf = catAppendOnlyExpireAtCommand(buf,cmd,argv[1],argv[2]); - } else if (cmd->proc == setCommand) { + } else if (cmd->proc == setCommand && argc > 3) { int i; robj *exarg = NULL, *pxarg = NULL; /* Translate SET [EX seconds][PX milliseconds] to SET and PEXPIREAT */ buf = catAppendOnlyGenericCommand(buf,3,argv); for (i = 3; i < argc; i ++) { - if (sdsEncodedObject(argv[i]) && !strcasecmp(argv[i]->ptr, "ex")) + if (!strcasecmp(argv[i]->ptr, "ex")) exarg = argv[i+1]; - if (sdsEncodedObject(argv[i]) && !strcasecmp(argv[i]->ptr, "px")) + if (!strcasecmp(argv[i]->ptr, "px")) pxarg = argv[i+1]; } serverAssert(!(exarg && pxarg));