@@ -705,7 +705,12 @@ int RedisAI_ModelRun_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv,
705
705
AC_GetRString (& ac , & keystr , 0 );
706
706
707
707
RedisModuleKey * key = RedisModule_OpenKey (ctx , keystr , REDISMODULE_READ );
708
- if (!(RedisModule_KeyType (key ) == REDISMODULE_KEYTYPE_MODULE &&
708
+ int type = RedisModule_KeyType (key );
709
+ if (type == REDISMODULE_KEYTYPE_EMPTY ) {
710
+ RedisModule_CloseKey (key );
711
+ return RedisModule_ReplyWithError (ctx , "ERR model key is empty" );
712
+ }
713
+ if (!(type == REDISMODULE_KEYTYPE_MODULE &&
709
714
RedisModule_ModuleTypeGetType (key ) == RedisAI_ModelType )) {
710
715
RedisModule_CloseKey (key );
711
716
return RedisModule_ReplyWithError (ctx , REDISMODULE_ERRORMSG_WRONGTYPE );
@@ -756,9 +761,15 @@ int RedisAI_ModelRun_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv,
756
761
757
762
for (size_t i = 0 ; i < ninputs ; i ++ ) {
758
763
RedisModuleKey * argkey = RedisModule_OpenKey (ctx , inputs [i ], REDISMODULE_READ );
764
+ int type = RedisModule_KeyType (argkey );
765
+ if (type == REDISMODULE_KEYTYPE_EMPTY ) {
766
+ // todo free rinfo, close key
767
+ RedisModule_CloseKey (argkey );
768
+ return RedisModule_ReplyWithError (ctx , "Input key is empty" );
769
+ }
759
770
if (!(RedisModule_KeyType (argkey ) == REDISMODULE_KEYTYPE_MODULE &&
760
771
RedisModule_ModuleTypeGetType (argkey ) == RedisAI_TensorType )) {
761
- // todo free rinfo
772
+ // todo free rinfo, close key
762
773
RedisModule_CloseKey (argkey );
763
774
return RedisModule_ReplyWithError (ctx , REDISMODULE_ERRORMSG_WRONGTYPE );
764
775
}
@@ -857,7 +868,12 @@ int RedisAI_ScriptRun_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv
857
868
// - A: a separate thread and queue for scripts
858
869
// - B: the same thread and queue for models and scripts
859
870
RedisModuleKey * key = RedisModule_OpenKey (ctx , keystr , REDISMODULE_READ );
860
- if (!(RedisModule_KeyType (key ) == REDISMODULE_KEYTYPE_MODULE &&
871
+ int type = RedisModule_KeyType (key );
872
+ if (type == REDISMODULE_KEYTYPE_EMPTY ) {
873
+ RedisModule_CloseKey (key );
874
+ return RedisModule_ReplyWithError (ctx , "ERR script key is empty" );
875
+ }
876
+ if (!(type == REDISMODULE_KEYTYPE_MODULE &&
861
877
RedisModule_ModuleTypeGetType (key ) == RedisAI_ScriptType )) {
862
878
RedisModule_CloseKey (key );
863
879
return RedisModule_ReplyWithError (ctx , REDISMODULE_ERRORMSG_WRONGTYPE );
@@ -902,7 +918,12 @@ int RedisAI_ScriptRun_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv
902
918
903
919
for (size_t i = 0 ; i < ninputs ; i ++ ) {
904
920
RedisModuleKey * argkey = RedisModule_OpenKey (ctx , inputs [i ], REDISMODULE_READ );
905
- if (!(RedisModule_KeyType (argkey ) == REDISMODULE_KEYTYPE_MODULE &&
921
+ int type = RedisModule_KeyType (argkey );
922
+ if (type == REDISMODULE_KEYTYPE_EMPTY ) {
923
+ RedisModule_CloseKey (argkey );
924
+ return RedisModule_ReplyWithError (ctx , "Input key is empty" );
925
+ }
926
+ if (!(type == REDISMODULE_KEYTYPE_MODULE &&
906
927
RedisModule_ModuleTypeGetType (argkey ) == RedisAI_TensorType )) {
907
928
RedisModule_CloseKey (argkey );
908
929
return RedisModule_ReplyWithError (ctx , REDISMODULE_ERRORMSG_WRONGTYPE );
0 commit comments