#13 nsd/tcltime.c:546: error: Null Dereference pointer `tPtr` last assigned on line 534 could be null and is dereferenced by call to `Ns_TimeToMilliseconds()` at line 546, column 14. nsd/tcltime.c:530:1: start of procedure NsTclSleepObjCmd() 528. */ 529. 530. int ^ 531. NsTclSleepObjCmd(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 532. { nsd/tcltime.c:533:5: 531. NsTclSleepObjCmd(ClientData UNUSED(clientData), Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 532. { 533. int rc = TCL_OK; ^ 534. Ns_Time *tPtr = NULL; 535. Ns_ObjvSpec args[] = { nsd/tcltime.c:534:5: 532. { 533. int rc = TCL_OK; 534. Ns_Time *tPtr = NULL; ^ 535. Ns_ObjvSpec args[] = { 536. {"timespec", Ns_ObjvTime, &tPtr, &nonnegTimeRange}, nsd/tcltime.c:535:5: 533. int rc = TCL_OK; 534. Ns_Time *tPtr = NULL; 535. Ns_ObjvSpec args[] = { ^ 536. {"timespec", Ns_ObjvTime, &tPtr, &nonnegTimeRange}, 537. {NULL, NULL, NULL, NULL} nsd/tcltime.c:540:9: Taking false branch 538. }; 539. 540. if (Ns_ParseObjv(NULL, args, interp, 1, objc, objv) != NS_OK) { ^ 541. rc = TCL_ERROR; 542. } else { nsd/tcltime.c:545:9: 543. time_t ms; 544. 545. assert(tPtr != NULL); ^ 546. ms = Ns_TimeToMilliseconds(tPtr); 547. if (ms > 0) { nsd/tcltime.c:546:9: 544. 545. assert(tPtr != NULL); 546. ms = Ns_TimeToMilliseconds(tPtr); ^ 547. if (ms > 0) { 548. Tcl_Sleep((int)ms); nsthread/time.c:393:1: start of procedure Ns_TimeToMilliseconds() 391. *---------------------------------------------------------------------- 392. */ 393. time_t ^ 394. Ns_TimeToMilliseconds(const Ns_Time *timePtr) 395. { nsthread/time.c:398:5: 396. time_t result; 397. 398. NS_NONNULL_ASSERT(timePtr != NULL); ^ 399. 400. if (likely(timePtr->sec >= 0)) { nsthread/time.c:400:9: 398. NS_NONNULL_ASSERT(timePtr != NULL); 399. 400. if (likely(timePtr->sec >= 0)) { ^ 401. result = timePtr->sec*1000 + timePtr->usec/1000; 402. } else {