components/cdrtools/patches/write.c.patch
author Phi Tran <Phi.N.Tran@Oracle.COM>
Wed, 05 Dec 2012 16:42:34 -0800
changeset 1072 75ddf7807870
parent 356 cc77dce0ea27
permissions -rw-r--r--
15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1072
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     1
# This patch is made from a diff of versions 3.00 and 3.01a01.
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     2
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     3
--- cdrtools-3.00/mkisofs/write.c.orig	2012-11-01 01:25:32.964412979 -0700
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     4
+++ cdrtools-3.00/mkisofs/write.c	2012-11-01 01:25:47.946345028 -0700
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     5
@@ -1005,9 +1005,25 @@
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     6
 	for (i = 0, dwpnt = dw_head; i < num; i++, dwpnt = dwpnt->next) {
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     7
 		s_entry = dwpnt->s_entry;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     8
 		dwpnt->extent = s_entry->starting_block = start_extent;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
     9
-		set_733((char *)s_entry->isorec.extent, start_extent);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    10
 
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    11
-		start_extent += ISO_BLOCKS(s_entry->size);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    12
+		if (s_entry->de_flags & MULTI_EXTENT) {
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    13
+			struct directory_entry  *s_e;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    14
+
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    15
+			s_entry->mxroot->starting_block = start_extent;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    16
+			set_733((char *)s_entry->mxroot->isorec.extent,
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    17
+								start_extent);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    18
+			for (s_e = s_entry;      
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    19
+			    s_e && s_e->mxroot == s_entry->mxroot;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    20
+			    s_e = s_e->next) {       
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    21
+				set_733((char *)s_e->isorec.extent,
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    22
+								start_extent);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    23
+				s_entry->starting_block = start_extent;
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    24
+				start_extent += ISO_BLOCKS(s_e->size);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    25
+			}
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    26
+		} else { 
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    27
+			set_733((char *)s_entry->isorec.extent, start_extent);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    28
+			start_extent += ISO_BLOCKS(s_entry->size);
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    29
+		}
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    30
 #ifdef DVD_VIDEO
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    31
 		/*
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    32
 		 * Shouldn't this be done for every type of sort? Otherwise
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    33
@@ -1978,6 +1994,7 @@
356
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    34
 	int		i;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    35
 	int		s;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    36
 	Uchar		*cp;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    37
+	extern		char *modification_date;
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    38
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    39
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    40
 	time(&begun);
1072
75ddf7807870 15823617 SUNBT7205379 fix mkisofs bug related to files larger then 4 GB
Phi Tran <Phi.N.Tran@Oracle.COM>
parents: 356
diff changeset
    41
@@ -2079,7 +2096,11 @@
356
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    42
 	FILL_SPACE(application_data);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    43
 
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    44
 	memcpy(vol_desc.creation_date, iso_time, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    45
-	memcpy(vol_desc.modification_date, iso_time, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    46
+	if (modification_date == NULL) {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    47
+		memcpy(vol_desc.modification_date, iso_time, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    48
+	} else {
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    49
+		memcpy(vol_desc.modification_date, modification_date, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    50
+	}
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    51
 	memcpy(vol_desc.expiration_date, "0000000000000000", 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    52
 	memcpy(vol_desc.effective_date, iso_time, 17);
cc77dce0ea27 PSARC/2011/154 mkisofs enhancements
Phi Tran <Phi.Tran@Sun.COM>
parents:
diff changeset
    53