#20 nsd/tcljob.c:848: error: Null Dereference pointer `queue` last assigned on line 831 could be null and is dereferenced at line 848, column 16. nsd/tcljob.c:828:1: start of procedure JobCancelObjCmd() 826. *---------------------------------------------------------------------- 827. */ 828. static int ^ 829. JobCancelObjCmd(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 830. { nsd/tcljob.c:831:5: 829. JobCancelObjCmd(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 830. { 831. Queue *queue = NULL; ^ 832. int result = TCL_OK; 833. char *jobIdString; nsd/tcljob.c:832:5: 830. { 831. Queue *queue = NULL; 832. int result = TCL_OK; ^ 833. char *jobIdString; 834. Ns_ObjvSpec args[] = { nsd/tcljob.c:834:5: 832. int result = TCL_OK; 833. char *jobIdString; 834. Ns_ObjvSpec args[] = { ^ 835. {"queueId", ObjvQueue, &queue, NULL}, 836. {"jobId", Ns_ObjvString, &jobIdString, NULL}, nsd/tcljob.c:840:9: Taking false branch 838. }; 839. 840. if (Ns_ParseObjv(NULL, args, interp, 2, objc, objv) != NS_OK) { ^ 841. result = TCL_ERROR; 842. nsd/tcljob.c:844:9: 842. 843. } else { 844. Job *jobPtr = NULL; ^ 845. const Tcl_HashEntry *hPtr; 846. nsd/tcljob.c:847:9: 845. const Tcl_HashEntry *hPtr; 846. 847. assert(queue != NULL); ^ 848. hPtr = Tcl_FindHashEntry(&queue->jobs, jobIdString); 849. if (hPtr == NULL) { nsd/tcljob.c:848:9: 846. 847. assert(queue != NULL); 848. hPtr = Tcl_FindHashEntry(&queue->jobs, jobIdString); ^ 849. if (hPtr == NULL) { 850. (void)ReleaseQueue(queue, NS_FALSE);