PATCH: untaint method for IO::Handle, 5.003_06 version
Randy J. Ray [Wed, 9 Oct 1996 02:24:48 +0000 (22:24 -0400)]
This is a re-post of my patch to Graham's IO library to add a method in
IO::Handle called "untaint", that sets the IOf_UNTAINT flag on an object
that is of or inherits from IO::Handle. With this flag set, data read from
said handle is not tainted, whether running under -T, suid or sgid.

This patch adds the method to IO.xs, adds documentation and warning to the
pod of IO/Handle.pm, creates a new test in t/lib called io_taint.t, and
adds mention of the new file to MANIFEST.

Add method "untaint" into class IO::Handle

ext/IO/IO.xs

index bfe1f5a..3cc3518 100644 (file)
@@ -199,6 +199,23 @@ clearerr(handle)
     OUTPUT:
        RETVAL
 
+int
+untaint(handle)
+       SV *    handle
+    CODE:
+       IO * io;
+       io = sv_2io(handle);
+       if (io) {
+           IoFLAGS(io) |= IOf_UNTAINT;
+           RETVAL = 0;
+       }
+        else {
+           RETVAL = -1;
+           errno = EINVAL;
+       }
+    OUTPUT:
+       RETVAL
+
 SysRet
 fflush(handle)
        OutputStream    handle