#27 nsd/tclcache.c:1139: error: Null Dereference pointer `cPtr` last assigned on line 1116 could be null and is dereferenced at line 1139, column 17. nsd/tclcache.c:1113:1: start of procedure NsTclCacheStatsObjCmd() 1111. */ 1112. 1113. int ^ 1114. NsTclCacheStatsObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 1115. { nsd/tclcache.c:1116:5: 1114. NsTclCacheStatsObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 1115. { 1116. TclCache *cPtr = NULL; ^ 1117. int contents = (int)NS_FALSE, reset = (int)NS_FALSE, result = TCL_OK; 1118. Ns_ObjvSpec opts[] = { nsd/tclcache.c:1117:5: 1115. { 1116. TclCache *cPtr = NULL; 1117. int contents = (int)NS_FALSE, reset = (int)NS_FALSE, result = TCL_OK; ^ 1118. Ns_ObjvSpec opts[] = { 1119. {"-contents", Ns_ObjvBool, &contents, INT2PTR(NS_TRUE)}, nsd/tclcache.c:1118:5: 1116. TclCache *cPtr = NULL; 1117. int contents = (int)NS_FALSE, reset = (int)NS_FALSE, result = TCL_OK; 1118. Ns_ObjvSpec opts[] = { ^ 1119. {"-contents", Ns_ObjvBool, &contents, INT2PTR(NS_TRUE)}, 1120. {"-reset", Ns_ObjvBool, &reset, INT2PTR(NS_TRUE)}, nsd/tclcache.c:1124:5: 1122. {NULL, NULL, NULL, NULL} 1123. }; 1124. Ns_ObjvSpec args[] = { ^ 1125. {"cache", ObjvCache, &cPtr, clientData}, 1126. {NULL, NULL, NULL, NULL} nsd/tclcache.c:1128:5: 1126. {NULL, NULL, NULL, NULL} 1127. }; 1128. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ ^ 1129. 1130. if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { nsd/tclcache.c:1130:9: Taking false branch 1128. args[0].arg = clientData; /* pass non-constant clientData for "cache" */ 1129. 1130. if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { ^ 1131. result = TCL_ERROR; 1132. nsd/tclcache.c:1137:9: 1135. Ns_Cache *cache; 1136. 1137. assert(cPtr != NULL); ^ 1138. 1139. cache = cPtr->cache; nsd/tclcache.c:1139:9: 1137. assert(cPtr != NULL); 1138. 1139. cache = cPtr->cache; ^ 1140. Ns_DStringInit(&ds); 1141.