mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
fix valgrind issues with recently added test in modules/blockonbackground (#9192)
fixes test issue introduced in #9167 1. invalid reads due to accessing non-retained string (passed as unblock context). 2. leaking module blocked client context, see #6922 for info.
This commit is contained in:
parent
8f59f131e5
commit
a8518cce95
@ -206,6 +206,7 @@ int Block_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc)
|
||||
RedisModuleString *r = RedisModule_GetBlockedClientPrivateData(ctx);
|
||||
return RedisModule_ReplyWithString(ctx, r);
|
||||
} else if (RedisModule_IsBlockedTimeoutRequest(ctx)) {
|
||||
RedisModule_UnblockClient(blocked_client, NULL); /* Must be called to avoid leaks. */
|
||||
blocked_client = NULL;
|
||||
return RedisModule_ReplyWithSimpleString(ctx, "Timed out");
|
||||
}
|
||||
@ -245,7 +246,9 @@ int Release_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc
|
||||
return RedisModule_ReplyWithError(ctx, "ERR No blocked client");
|
||||
}
|
||||
|
||||
RedisModule_UnblockClient(blocked_client, argv[1]);
|
||||
RedisModuleString *replystr = argv[1];
|
||||
RedisModule_RetainString(ctx, replystr);
|
||||
int err = RedisModule_UnblockClient(blocked_client, replystr);
|
||||
blocked_client = NULL;
|
||||
|
||||
RedisModule_ReplyWithSimpleString(ctx, "OK");
|
||||
|
Loading…
Reference in New Issue
Block a user