Package: hfsplus / 1.0.4-16

231270_hpmount_destroys_hfs_volume_headers.dpatch Patch series | download
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
#! /bin/sh -e
## 231270_hpmount_destroys_hfs_volume_headers.dpatch by Frank Lichtenheld <djpig@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Avoid HFS volume headers destruction.

if [ $# -ne 1 ]; then
    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
    exit 1
fi
case "$1" in
    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
    *)
        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
        exit 1;;
esac

exit 0

diff -x debian -ruN old/hfsplus-1.0.4/libhfsp/src/volume.c hfsplus-1.0.4/libhfsp/src/volume.c
--- old/hfsplus-1.0.4/libhfsp/src/volume.c	2002-03-26 18:00:29.000000000 +0000
+++ hfsplus-1.0.4/libhfsp/src/volume.c	2006-09-13 20:52:15.000000000 +0000
@@ -508,8 +509,10 @@
 
     vol->flags |= rw & HFSP_MODE_RDWR;
 
-    if (volume_read_wrapper(vol, &vol->vol))
+    if (volume_read_wrapper(vol, &vol->vol)) {
+	vol->flags ^= HFSP_MODE_RDWR;
 	return -1;
+    }
 
     if (volume_read(vol, &backup, vol->maxblocks - 2))
 	return -1;