Tcl Source Code

View Ticket
Login
Ticket UUID: 999162
Title: TIP#210: Add tempname subcommand to file
Type: Patch Created on: 2004-07-28 05:13:25
Submitter: techentin Assigned to: dkf
Subsystem: 16. Commands A-H Severity:
Priority: 5 Medium Last modified: 2008-11-30 01:24:22
Status: Closed Closed by: dkf
Resolution: Fixed Closed on: 2008-11-29 18:24:22
Version: TIP Implementation
Description:
This patch adds a new tempname subcommand to the file command.

The patch changes generic/tclCmdAH.c and generic/tclFCmd.c, adding a new command and function, which essentially calls the ANSI function tmpnam().

Changes to the file.n man page and test suite are included.

The Linux Programmer's Manual (Linux man pages) isn't very flattering towards tmpnam().  It basically says to use mkstemp() instead, but that function is POSIX instead of ANSI C.
User Comments:
techentin added on 2004-07-28 12:13:26:

File Added - 95502: file-tempname.patch

dkf added on 2008-11-20 17:29:46:
Need to update to use mkstemp() or something like that.

matzek added on 2008-11-22 00:19:31:
I think there is no need to go into C level. Have a look at tcllibs ::fileutil::tempfile for Tcl only implementation that's fine with regard to race conditions and security.

Please stay away from tmpnam() and friends. Consider:
* http://cwe.mitre.org/data/definitions/377.html
* https://buildsecurityin.us-cert.gov/daisy/bsi-rules/home/g1/861-BSI.html

mkstemp() is the only way to go at C-Level...

kind regards -- Matthias Kraft

dkf added on 2008-11-30 01:24:22:
Implemented.

At C level, we're using mkstemps() or mkstemp() on Unix, and something fairly horrible on Win (which still has the right security properties).

Attachments: