Posted to tcl by mjanssen at Mon Jun 04 19:08:26 GMT 2007view raw
- Index: generic/tclCep.c
- ===================================================================
- --- generic/tclCep.c (revision 240)
- +++ generic/tclCep.c (working copy)
- @@ -417,7 +417,7 @@
- * connection. */
- const char *addr ; /* Address of client that was
- * accepted. */
- - int port;
- + int port,i;
- int cepDomain;
- uid_t euid;
- gid_t egid;
- @@ -451,6 +451,15 @@
- cmd[4] = Tcl_NewIntObj((signed) egid);
- cmd[5] = Tcl_NewByteArrayObj(data, (signed) egid);
- + /*
- + * increase refcount so the cmd elements are guaranteed
- + * to still exist after calling TEOv
- + */
- +
- + for (i=0 ; i<6 ; i++) {
- + Tcl_IncrRefCount(cmd[i]);
- + }
- +
- /*
- * Artificially bump the refcount to protect the channel from
- * being deleted while the script is being evaluated.
- @@ -466,6 +475,15 @@
- }
- /*
- + * Decrease refcounts of cmd elements because we wont keep a
- + * reference to them
- + */
- +
- + for (i=0 ; i<6 ; i++) {
- + Tcl_DecrRefCount(cmd[i]);
- + }
- +
- + /*
- * Decrement the artificially bumped refcount. After this it is
- * not safe anymore to use "chan", because it may now be deleted.