Skip to content

Commit 17b47b5

Browse files
authored
Emit specific errors when key is empty (#131)
1 parent 5b9c71c commit 17b47b5

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/redisai.c

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ int RedisAI_TensorGet_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv
262262
RedisModuleKey *key = RedisModule_OpenKey(ctx, keystr,
263263
REDISMODULE_READ);
264264
int type = RedisModule_KeyType(key);
265+
if (type == REDISMODULE_KEYTYPE_EMPTY) {
266+
RedisModule_CloseKey(key);
267+
return RedisModule_ReplyWithError(ctx, "ERR cannot get tensor from empty key");
268+
}
265269
if (!(type == REDISMODULE_KEYTYPE_MODULE &&
266270
RedisModule_ModuleTypeGetType(key) == RedisAI_TensorType)) {
267271
RedisModule_CloseKey(key);
@@ -536,7 +540,12 @@ int RedisAI_ModelGet_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv,
536540
AC_GetRString(&ac, &keystr, 0);
537541

538542
RedisModuleKey *key = RedisModule_OpenKey(ctx, keystr, REDISMODULE_READ);
539-
if (!(RedisModule_KeyType(key) == REDISMODULE_KEYTYPE_MODULE &&
543+
int type = RedisModule_KeyType(key);
544+
if (type == REDISMODULE_KEYTYPE_EMPTY) {
545+
RedisModule_CloseKey(key);
546+
return RedisModule_ReplyWithError(ctx, "ERR cannot get model from empty key");
547+
}
548+
if (!(type == REDISMODULE_KEYTYPE_MODULE &&
540549
RedisModule_ModuleTypeGetType(key) == RedisAI_ModelType)) {
541550
RedisModule_CloseKey(key);
542551
return RedisModule_ReplyWithError(ctx, REDISMODULE_ERRORMSG_WRONGTYPE);
@@ -963,8 +972,12 @@ int RedisAI_ScriptGet_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv
963972
AC_GetRString(&ac, &keystr, 0);
964973

965974
RedisModuleKey *key = RedisModule_OpenKey(ctx, keystr, REDISMODULE_READ);
966-
967-
if (!(RedisModule_KeyType(key) == REDISMODULE_KEYTYPE_MODULE &&
975+
int type = RedisModule_KeyType(key);
976+
if (type == REDISMODULE_KEYTYPE_EMPTY) {
977+
RedisModule_CloseKey(key);
978+
return RedisModule_ReplyWithError(ctx, "ERR cannot get script from empty key");
979+
}
980+
if (!(type == REDISMODULE_KEYTYPE_MODULE &&
968981
RedisModule_ModuleTypeGetType(key) == RedisAI_ScriptType)) {
969982
RedisModule_CloseKey(key);
970983
return RedisModule_ReplyWithError(ctx, REDISMODULE_ERRORMSG_WRONGTYPE);

0 commit comments

Comments
 (0)