File CVE-2015-8946.patch of Package ecryptfs-utils.6434

Index: src/utils/ecryptfs-setup-swap
===================================================================
--- src/utils/ecryptfs-setup-swap.orig
+++ src/utils/ecryptfs-setup-swap
@@ -158,6 +158,24 @@ for swap in $swaps; do
 		i=$((i+1))
 		[ -e "/dev/mapper/cryptswap$i" ] || break
 	done
+
+	# If this is a GPT partition, mark it as no-auto mounting, to avoid
+	# auto-activating it on boot
+	if [ "$(blkid -p -s PART_ENTRY_SCHEME -o value "$swap")" = "gpt" ]; then
+		drive="${swap%[0-9]*}"
+		partno="${swap#$drive}"
+		if [ -b "$drive" ]; then
+			if printf "x\np\n" | fdisk "$drive" | grep -q "^$swap .* GUID:.*\b63\b"; then
+				echo "$swap is already marked as no-auto"
+			else
+				# toggle flag 63 ("no auto")
+				echo "marking GPT swap partition $swap as no-auto..."
+				# unfortunately fdisk fails on "cannot re-read part table" and is very verbose
+				printf "x\nS\n$partno\n63\nr\nw\n" | fdisk "$drive" >/dev/null 2>&1 || true
+			fi
+		fi
+	fi
+
 	# Add crypttab entry
 	echo "cryptswap$i $swap /dev/urandom swap,cipher=aes-cbc-essiv:sha256" >> /etc/crypttab
 
openSUSE Build Service is sponsored by