1df9ad0
diff -up blender-2.49b/source/blender/blenkernel/intern/blender.c.cve blender-2.49b/source/blender/blenkernel/intern/blender.c
1df9ad0
--- blender-2.49b/source/blender/blenkernel/intern/blender.c.cve	2009-09-01 17:21:17.000000000 +0200
1df9ad0
+++ blender-2.49b/source/blender/blenkernel/intern/blender.c	2010-01-13 17:32:11.312632711 +0100
1df9ad0
@@ -41,6 +41,7 @@
1df9ad0
 	#define write _write
1df9ad0
 #endif
1df9ad0
 
1df9ad0
+#include <errno.h>
1df9ad0
 #include <stdlib.h>
1df9ad0
 #include <stdio.h>
1df9ad0
 #include <string.h>
1df9ad0
@@ -753,7 +754,7 @@ void BKE_undo_save_quit(void)
1df9ad0
 {
1df9ad0
 	UndoElem *uel;
1df9ad0
 	MemFileChunk *chunk;
1df9ad0
-	int file;
1df9ad0
+	int file = -1;
1df9ad0
 	char str[FILE_MAXDIR+FILE_MAXFILE];
1df9ad0
 	
1df9ad0
 	if( (U.uiflag & USER_GLOBALUNDO)==0) return;
1df9ad0
@@ -767,12 +768,20 @@ void BKE_undo_save_quit(void)
1df9ad0
 	/* no undo state to save */
1df9ad0
 	if(undobase.first==undobase.last) return;
1df9ad0
 		
1df9ad0
-	BLI_make_file_string("/", str, btempdir, "quit.blend");
1df9ad0
+	BLI_make_file_string("/", str, BLI_gethome(), ".blender/quit.blend");
1df9ad0
 
1df9ad0
-	file = open(str,O_BINARY+O_WRONLY+O_CREAT+O_TRUNC, 0666);
1df9ad0
-	if(file == -1) {
1df9ad0
-		error("Unable to save %s, check you have permissions", str);
1df9ad0
-		return;
1df9ad0
+	int flags = O_BINARY+O_WRONLY+O_TRUNC+O_EXCL+O_CREAT;
1df9ad0
+	
1df9ad0
+        while(file == -1) {
1df9ad0
+	  file = open(str,flags,0666);
1df9ad0
+	  if(file == -1) {
1df9ad0
+	    if(errno == EEXIST) {
1df9ad0
+	      flags ^= O_CREAT;
1df9ad0
+	    } else {
1df9ad0
+	      error("Unable to save %s, check you have permissions", str);
1df9ad0
+	      return;
1df9ad0
+	    }
1df9ad0
+	  }
1df9ad0
 	}
1df9ad0
 
1df9ad0
 	chunk= uel->memfile.chunks.first;
1df9ad0
diff -up blender-2.49b/source/blender/python/BPY_interface.c.cve blender-2.49b/source/blender/python/BPY_interface.c
1df9ad0
--- blender-2.49b/source/blender/python/BPY_interface.c.cve	2009-09-01 17:21:12.000000000 +0200
1df9ad0
+++ blender-2.49b/source/blender/python/BPY_interface.c	2010-01-13 17:08:19.567752630 +0100
1df9ad0
@@ -236,6 +236,11 @@ void BPY_start_python( int argc, char **
1df9ad0
 	Py_Initialize(  );
1df9ad0
 	
1df9ad0
 	PySys_SetArgv( argc_copy, argv_copy );
1df9ad0
+	
1df9ad0
+	/* Sanitize sys.path to prevent relative imports loading modules in
1df9ad0
+	   the current working directory */
1df9ad0
+	PyRun_SimpleString("import sys; sys.path = filter(None, sys.path)");
1df9ad0
+
1df9ad0
 	/* Initialize thread support (also acquires lock) */
1df9ad0
 	PyEval_InitThreads();
1df9ad0