#23 nsd/tclcache.c:945: error: Null Dereference pointer `cPtr` last assigned on line 919 could be null and is dereferenced at line 945, column 17. nsd/tclcache.c:916:1: start of procedure NsTclCacheFlushObjCmd() 914. */ 915. 916. int ^ 917. NsTclCacheFlushObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 918. { nsd/tclcache.c:919:5: 917. NsTclCacheFlushObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 918. { 919. TclCache *cPtr = NULL; ^ 920. int glob = (int)NS_FALSE, npatterns = 0, result = TCL_OK; 921. const NsInterp *itPtr = clientData; nsd/tclcache.c:920:5: 918. { 919. TclCache *cPtr = NULL; 920. int glob = (int)NS_FALSE, npatterns = 0, result = TCL_OK; ^ 921. const NsInterp *itPtr = clientData; 922. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; nsd/tclcache.c:921:5: 919. TclCache *cPtr = NULL; 920. int glob = (int)NS_FALSE, npatterns = 0, result = TCL_OK; 921. const NsInterp *itPtr = clientData; ^ 922. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; 923. nsd/tclcache.c:922:5: 920. int glob = (int)NS_FALSE, npatterns = 0, result = TCL_OK; 921. const NsInterp *itPtr = clientData; 922. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; ^ 923. 924. Ns_ObjvSpec opts[] = { nsd/tclcache.c:924:5: 922. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; 923. 924. Ns_ObjvSpec opts[] = { ^ 925. {"-glob", Ns_ObjvBool, &glob, INT2PTR(NS_TRUE)}, 926. {"--", Ns_ObjvBreak, NULL, NULL}, nsd/tclcache.c:929:5: 927. {NULL, NULL, NULL, NULL} 928. }; 929. Ns_ObjvSpec args[] = { ^ 930. {"cache", ObjvCache, &cPtr, clientData}, 931. {"?args", Ns_ObjvArgs, &npatterns, NULL}, nsd/tclcache.c:934:5: 932. {NULL, NULL, NULL, NULL} 933. }; 934. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ ^ 935. 936. if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { nsd/tclcache.c:936:9: Taking false branch 934. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ 935. 936. if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { ^ 937. result = TCL_ERROR; 938. nsd/tclcache.c:941:9: 939. } else { 940. Ns_Entry *entry; 941. int nflushed = 0, i; ^ 942. Ns_Cache *cache; 943. nsd/tclcache.c:944:9: 942. Ns_Cache *cache; 943. 944. assert(cPtr != NULL); ^ 945. cache = cPtr->cache; 946. nsd/tclcache.c:945:9: 943. 944. assert(cPtr != NULL); 945. cache = cPtr->cache; ^ 946. 947. Ns_CacheLock(cache);