#9 nsd/adpcmds.c:436: error: Null Dereference pointer `fileName` last assigned on line 379 could be null and is dereferenced by call to `NsAdpInclude()` at line 436, column 22. nsd/adpcmds.c:376:1: start of procedure NsTclAdpIncludeObjCmd() 374. */ 375. 376. int ^ 377. NsTclAdpIncludeObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 378. { nsd/adpcmds.c:379:5: 377. NsTclAdpIncludeObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const* objv) 378. { 379. char *fileName = NULL; ^ 380. int result, tclScript = 0, nocache = 0, nargs = 0; 381. Ns_Time *ttlPtr = NULL; nsd/adpcmds.c:380:5: 378. { 379. char *fileName = NULL; 380. int result, tclScript = 0, nocache = 0, nargs = 0; ^ 381. Ns_Time *ttlPtr = NULL; 382. nsd/adpcmds.c:381:5: 379. char *fileName = NULL; 380. int result, tclScript = 0, nocache = 0, nargs = 0; 381. Ns_Time *ttlPtr = NULL; ^ 382. 383. Ns_ObjvSpec opts[] = { nsd/adpcmds.c:383:5: 381. Ns_Time *ttlPtr = NULL; 382. 383. Ns_ObjvSpec opts[] = { ^ 384. {"-cache", Ns_ObjvTime, &ttlPtr, NULL}, 385. {"-nocache", Ns_ObjvBool, &nocache, INT2PTR(NS_TRUE)}, nsd/adpcmds.c:390:5: 388. {NULL, NULL, NULL, NULL} 389. }; 390. Ns_ObjvSpec args[] = { ^ 391. {"fileName", Ns_ObjvString, &fileName, NULL}, 392. {"?args", Ns_ObjvArgs, &nargs, NULL}, nsd/adpcmds.c:395:9: Taking false branch 393. {NULL, NULL, NULL, NULL} 394. }; 395. if (Ns_ParseObjv(opts, args, interp, 1, objc, objv) != NS_OK) { ^ 396. result = TCL_ERROR; 397. } else { nsd/adpcmds.c:398:9: 396. result = TCL_ERROR; 397. } else { 398. NsInterp *itPtr = clientData; ^ 399. unsigned int flags; 400. Tcl_DString *dsPtr; nsd/adpcmds.c:402:9: 400. Tcl_DString *dsPtr; 401. 402. objv = objv + (objc - nargs); ^ 403. objc = nargs; 404. nsd/adpcmds.c:403:9: 401. 402. objv = objv + (objc - nargs); 403. objc = nargs; ^ 404. 405. flags = itPtr->adp.flags; nsd/adpcmds.c:405:9: 403. objc = nargs; 404. 405. flags = itPtr->adp.flags; ^ 406. if (nocache != 0) { 407. itPtr->adp.flags &= ~ADP_CACHE; nsd/adpcmds.c:406:13: Taking false branch 404. 405. flags = itPtr->adp.flags; 406. if (nocache != 0) { ^ 407. itPtr->adp.flags &= ~ADP_CACHE; 408. } nsd/adpcmds.c:409:13: Taking false branch 407. itPtr->adp.flags &= ~ADP_CACHE; 408. } 409. if (tclScript != 0) { ^ 410. itPtr->adp.flags |= ADP_TCLFILE; 411. } nsd/adpcmds.c:418:13: Taking false branch 416. */ 417. 418. if (nocache != 0 && itPtr->adp.refresh > 0) { ^ 419. if (GetOutput(clientData, &dsPtr) != TCL_OK) { 420. result = TCL_ERROR; nsd/adpcmds.c:436:13: 434. } 435. } else { 436. result = NsAdpInclude(clientData, objc, objv, fileName, ttlPtr); ^ 437. itPtr->adp.flags = flags; 438. }