#26 nsd/tclcache.c:1058: error: Null Dereference pointer `cPtr` last assigned on line 1035 could be null and is dereferenced at line 1058, column 22. nsd/tclcache.c:1032:1: start of procedure NsTclCacheGetObjCmd() 1030. *---------------------------------------------------------------------- 1031. */ 1032. int ^ 1033. NsTclCacheGetObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 1034. { nsd/tclcache.c:1035:5: 1033. NsTclCacheGetObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 1034. { 1035. TclCache *cPtr = NULL; ^ 1036. char *key; 1037. int result = TCL_OK; nsd/tclcache.c:1037:5: 1035. TclCache *cPtr = NULL; 1036. char *key; 1037. int result = TCL_OK; ^ 1038. Tcl_Obj *varNameObj = NULL; 1039. Ns_ObjvSpec args[] = { nsd/tclcache.c:1038:5: 1036. char *key; 1037. int result = TCL_OK; 1038. Tcl_Obj *varNameObj = NULL; ^ 1039. Ns_ObjvSpec args[] = { 1040. {"cache", ObjvCache, &cPtr, clientData}, nsd/tclcache.c:1039:5: 1037. int result = TCL_OK; 1038. Tcl_Obj *varNameObj = NULL; 1039. Ns_ObjvSpec args[] = { ^ 1040. {"cache", ObjvCache, &cPtr, clientData}, 1041. {"key", Ns_ObjvString, &key, NULL}, nsd/tclcache.c:1045:5: 1043. {NULL, NULL, NULL, NULL} 1044. }; 1045. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ ^ 1046. 1047. if (Ns_ParseObjv(NULL, args, interp, 1, objc, objv) != NS_OK) { nsd/tclcache.c:1047:9: Taking false branch 1045. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ 1046. 1047. if (Ns_ParseObjv(NULL, args, interp, 1, objc, objv) != NS_OK) { ^ 1048. result = TCL_ERROR; 1049. nsd/tclcache.c:1053:9: 1051. const Ns_Entry *entry; 1052. Tcl_Obj *resultObj; 1053. const NsInterp *itPtr = clientData; ^ 1054. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; 1055. nsd/tclcache.c:1054:9: 1052. Tcl_Obj *resultObj; 1053. const NsInterp *itPtr = clientData; 1054. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; ^ 1055. 1056. assert(cPtr != NULL); nsd/tclcache.c:1056:9: 1054. const Ns_CacheTransactionStack *transactionStackPtr = &itPtr->cacheTransactionStack; 1055. 1056. assert(cPtr != NULL); ^ 1057. 1058. Ns_CacheLock(cPtr->cache); nsd/tclcache.c:1058:9: 1056. assert(cPtr != NULL); 1057. 1058. Ns_CacheLock(cPtr->cache); ^ 1059. entry = Ns_CacheFindEntryT(cPtr->cache, key, transactionStackPtr); 1060. if (entry != NULL) {