Use binary representation for key values dumped to crash log
Use binary representation for key values dumped crash to log,
so that if they contain null chars they're still printed correctly.
Additionally limit their length to 128 chars
@@ -1729,10 +1729,10 @@ void logCurrentClient(void) {
sdsfree(client);
for (j = 0; j < cc->argc; j++) {
robj *decoded;
-
decoded = getDecodedObject(cc->argv[j]);
- serverLog(LL_WARNING|LL_RAW,"argv[%d]: '%s'\n", j,
- (char*)decoded->ptr);
+ sds repr = sdscatrepr(sdsempty(),decoded->ptr, min(sdslen(decoded->ptr), 128));
+ serverLog(LL_WARNING|LL_RAW,"argv[%d]: '%s'\n", j, (char*)repr);
+ sdsfree(repr);
decrRefCount(decoded);
}
/* Check if the first argument, usually a key, is found inside the
