Index: generic/nsf.c =================================================================== diff -u -N -rc0e105342a08c35b70fb9edd30983dbc3a93ae2f -r8357e618a5bb3a3920e7f8f1754b84d69c3d11bd --- generic/nsf.c (.../nsf.c) (revision c0e105342a08c35b70fb9edd30983dbc3a93ae2f) +++ generic/nsf.c (.../nsf.c) (revision 8357e618a5bb3a3920e7f8f1754b84d69c3d11bd) @@ -14630,8 +14630,10 @@ INCR_REF_COUNT(ov[2]); /* result = Tcl_EvalObjv(interp, oc, ov, 0); */ - GetObjectFromObj(interp, ov[0], &object); - result = ObjectDispatch(object, interp, oc, ov, NSF_CSC_IMMEDIATE|NSF_CM_IGNORE_PERMISSIONS); + result = GetObjectFromObj(interp, ov[0], &object); + if(likely(result == TCL_OK)) { + result = ObjectDispatch(object, interp, oc, ov, NSF_CSC_IMMEDIATE|NSF_CM_IGNORE_PERMISSIONS); + } DECR_REF_COUNT(ov[1]); DECR_REF_COUNT(ov[2]); @@ -14720,8 +14722,7 @@ * We have no meta characters, we try to check for an existing object */ NsfObject *object = NULL; - GetObjectFromObj(interp, objPtr, &object); - if (object != NULL) { + if (GetObjectFromObj(interp, objPtr, &object) == TCL_OK && object != NULL) { patternObj = object->cmdName; } } else { @@ -27304,8 +27305,7 @@ assert(interp != NULL); assert(slotObj != NULL); - GetObjectFromObj(interp, slotObj, &slotObject); - if (unlikely(slotObject == NULL)) { + if (unlikely(GetObjectFromObj(interp, slotObj, &slotObject) != TCL_OK || slotObject == NULL)) { NsfPrintError(interp, "couldn't resolve slot object %s", ObjStr(slotObj)); }