Imported from util-linux-2.12r-pre1 tarball.
diff --git a/HISTORY b/HISTORY
index a8035d3..eddd64d 100644
--- a/HISTORY
+++ b/HISTORY
@@ -1,4 +1,10 @@
+util-linux 2.12r-pre1
+
+* cfdisk: fix a segfault with ReiserFS partitions
+* umount: disallow -r option for non-root users
+
 util-linux 2.12q
+
 * updated translation: nl
 
 util-linux 2.12q-pre2
diff --git a/VERSION b/VERSION
index 8765ff9..0e19e97 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.12q
+2.12r-pre1
diff --git a/fdisk/cfdisk.c b/fdisk/cfdisk.c
index 46bc494..30a888d 100644
--- a/fdisk/cfdisk.c
+++ b/fdisk/cfdisk.c
@@ -717,7 +717,7 @@
 	offset = (p_info[i].first_sector + p_info[i].offset) * SECTOR_SIZE
 		+ REISERFS_DISK_OFFSET_IN_BYTES;
 	if (ext2_llseek(fd, offset, SEEK_SET) == offset
-	    && read(fd, &reiserfsb, 1024) == 1024
+	    && read(fd, &reiserfsb, sizeof(reiserfsb)) == sizeof(reiserfsb)
 	    && has_reiserfs_magic_string(&reiserfsb, &reiserfs_is_3_6)) {
 		if (reiserfs_is_3_6) {
 			/* label only on version 3.6 onward */
diff --git a/mount/umount.c b/mount/umount.c
index b26c28d..db63d96 100644
--- a/mount/umount.c
+++ b/mount/umount.c
@@ -714,7 +714,7 @@
 
 	if (getuid () != geteuid ()) {
 		suid = 1;
-		if (all || types || nomtab || force)
+		if (all || types || nomtab || force || remount)
 			die (2, _("umount: only root can do that"));
 	}