summaryrefslogtreecommitdiffstats
path: root/truecrypt/build/truecrypt-7.1a_umount.patch
blob: 7f3d87f8e4a937ef55480f97df0eb64473eb8b38 (plain)
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
diff -uar truecrypt-7.1a-source.orig/Core/Unix/Linux/CoreLinux.cpp truecrypt-7.1a-source/Core/Unix/Linux/CoreLinux.cpp
--- truecrypt-7.1a-source.orig/Core/Unix/Linux/CoreLinux.cpp	2012-02-07 11:36:48.000000000 +0100
+++ truecrypt-7.1a-source/Core/Unix/Linux/CoreLinux.cpp	2012-03-31 13:05:41.065113488 +0200
@@ -91,13 +91,23 @@
 	void CoreLinux::DetachLoopDevice (const DevicePath &devicePath) const
 	{
 		list <string> args;
+		list <string> args2;
 		args.push_back ("-d");
 		args.push_back (devicePath);
+		/* args2 needed to umount loop device before detaching it
+		 * by Enrico Lo Tauro (neongen)
+		 */
+		args2.push_back (devicePath);
 
 		for (int t = 0; true; t++)
 		{
 			try
 			{
+				try
+				{
+					Process::Execute ("umount", args2);
+				}
+				catch (ExecutedProcessFailed&) { }
 				Process::Execute ("losetup", args);
 				break;
 			}