rem: memcpy(tagPtr->endtag, argv[2], elen);
add: memcpy(tagPtr->endtag, argv[2], (size_t)elen);
context: RegisterCmd(ClientData arg, Tcl_Interp *interp, int argc,		    char **argv, int type){    NsInterp       *itPtr = arg;    NsServer	   *servPtr = itPtr->servPtr;    char           *string;    Tcl_HashEntry  *hPtr;    int             new, slen, elen;    Tag            *tagPtr;        if (argc != 4 && argc != 3) {	Tcl_AppendResult(interp, "wrong # args: should be \"",			 argv[0], " tag ?endtag? ",			 type == TAG_ADP ? "adp" : "proc", "\"", NULL);	return TCL_ERROR;    }    string = argv[argc-1];    slen = strlen(string) + 1;    if (argc == 3) {	elen = 0;    } else {	elen = strlen(argv[2]) + 1;    }    tagPtr = ns_malloc(sizeof(Tag) + slen + elen);    tagPtr->type = type;    tagPtr->string = (char *) tagPtr + sizeof(Tag);    memcpy(tagPtr->string, string, slen);    if (argc == 3) {	tagPtr->endtag = NULL;    } else {	tagPtr->endtag = tagPtr->string + slen;	memcpy(tagPtr->endtag, argv[2], elen);    }    Ns_RWLockWrLock(&servPtr->adp.taglock);    hPtr = Tcl_CreateHashEntry(&servPtr->adp.tags, argv[1], &new);    if (!new) {	ns_free(Tcl_GetHashValue(hPtr));    }    Tcl_SetHashValue(hPtr, tagPtr);    tagPtr->tag = Tcl_GetHashKey(&servPtr->adp.tags, hPtr);    Ns_RWLockUnlock(&servPtr->adp.taglock);    return TCL_OK;}