summaryrefslogtreecommitdiffstats
path: root/generic/tclTest.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-26 07:34:23 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2022-09-26 07:34:23 (GMT)
commit0e8c4944f3ccee73cc897e78def303ee3c2859d7 (patch)
treef0e2af023b3ce546661413dbe8015c04dcbdd112 /generic/tclTest.c
parentca650aeafcb2e11e5c20ffacb727e9ec8b6cb7ce (diff)
parente6cdfb98357c9e6631e686409b6220dae3a5ec43 (diff)
downloadtcl-0e8c4944f3ccee73cc897e78def303ee3c2859d7.zip
tcl-0e8c4944f3ccee73cc897e78def303ee3c2859d7.tar.gz
tcl-0e8c4944f3ccee73cc897e78def303ee3c2859d7.tar.bz2
TIP #220: Escalate Privileges in VFS Close Callback
Diffstat (limited to 'generic/tclTest.c')
-rw-r--r--generic/tclTest.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/generic/tclTest.c b/generic/tclTest.c
index f6515c1..dcd86db 100644
--- a/generic/tclTest.c
+++ b/generic/tclTest.c
@@ -6041,6 +6041,45 @@ TestChannelCmd(
return TCL_OK;
}
+ if ((cmdName[0] == 'm') && (strncmp(cmdName, "maxmode", len) == 0)) {
+ if (argc != 3) {
+ Tcl_AppendResult(interp, "channel name required", NULL);
+ return TCL_ERROR;
+ }
+
+ if (statePtr->maxPerms & TCL_READABLE) {
+ Tcl_AppendElement(interp, "read");
+ } else {
+ Tcl_AppendElement(interp, "");
+ }
+ if (statePtr->maxPerms & TCL_WRITABLE) {
+ Tcl_AppendElement(interp, "write");
+ } else {
+ Tcl_AppendElement(interp, "");
+ }
+ return TCL_OK;
+ }
+
+ if ((cmdName[0] == 'm') && (strncmp(cmdName, "mremove-rd", len) == 0)) {
+ if (argc != 3) {
+ Tcl_AppendResult(interp, "channel name required",
+ (char *) NULL);
+ return TCL_ERROR;
+ }
+
+ return Tcl_RemoveChannelMode(interp, chan, TCL_READABLE);
+ }
+
+ if ((cmdName[0] == 'm') && (strncmp(cmdName, "mremove-wr", len) == 0)) {
+ if (argc != 3) {
+ Tcl_AppendResult(interp, "channel name required",
+ (char *) NULL);
+ return TCL_ERROR;
+ }
+
+ return Tcl_RemoveChannelMode(interp, chan, TCL_WRITABLE);
+ }
+
if ((cmdName[0] == 'm') && (strncmp(cmdName, "mthread", len) == 0)) {
if (argc != 3) {
Tcl_AppendResult(interp, "channel name required", NULL);