aboutsummaryrefslogtreecommitdiffstats
path: root/mail/exmh2/files/patch-env.tcl
blob: 1143f6cc2bb29dafdaba25150c93573ab4128de2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Index: lib/env.tcl
===================================================================
RCS file: /cvsroot/exmh/exmh/lib/env.tcl,v
retrieving revision 1.1
retrieving revision 1.3
diff -c -r1.1 -r1.3
*** lib/env.tcl	1998/05/05 17:55:23	1.1
--- lib/env.tcl	2001/01/16 02:07:46	1.3
***************
*** 34,44 ****
      }
  
      # Init TMPDIR
!     if [info exists env(EXMHTMPDIR)] {
  	set env(TMPDIR) $env(EXMHTMPDIR)
      }
!     if {![info exists env(TMPDIR)] || ![file isdirectory $env(TMPDIR)]} {
! 	set env(TMPDIR) /tmp
      }
  
      # Make sure MH is on the path
--- 34,45 ----
      }
  
      # Init TMPDIR
! 
!     if {[info exists env(EXMHTMPDIR)]} {
  	set env(TMPDIR) $env(EXMHTMPDIR)
      }
!     if {![info exists env(TMPDIR)]} {
! 	set env(TMPDIR) /tmp/$env(USER)
      }
  
      # Make sure MH is on the path
***************
*** 58,63 ****
--- 59,80 ----
  
  proc Env_Tmp {} {
      global env
+ 
+     # Doing this every time we use the temp file directory ensures
+     # no-one steals it without the user knowing it.
+ 
+     if {[catch {
+ 	file mkdir $env(TMPDIR)
+ 	if {$env(TMPDIR) != "/tmp"} {
+ 	    file attributes $env(TMPDIR) -permissions 0700
+ 	}
+     } err]} {
+ 	puts $err
+ 	catch {puts stderr "WARNING: exmh using unsafe /tmp directory"}
+ 	Exmh_Status "WARNING: exmh using unsafe /tmp directory" red
+ 	set env(TMPDIR) /tmp
+     }
+ 
      return $env(TMPDIR)
  }