File genisoimage-multi-extent-fix-bnc615177.patch of Package wodim.10091
--- genisoimage/write.c
+++ genisoimage/write.c
@@ -1013,6 +1013,40 @@
set_733((char *) s_entry->isorec.extent, start_extent);
start_extent += ISO_BLOCKS(s_entry->size);
+#ifdef USE_LARGEFILES
+ /*
+ * Update the entries for multi-section files
+ * as we now know the starting extent numbers.
+ */
+ if (s_entry->de_flags & MULTI_EXTENT) {
+ struct directory_entry *s_e;
+
+ /*
+ * The directory is sorted, so we should
+ * see s_entry->mxpart == 1 first.
+ */
+ if (s_entry->mxpart != 1) {
+ comerrno(EX_BAD,
+ "Panic: Multi extent parts for %s not in order.\n",
+ s_entry->whole_name);
+ }
+ s_entry->mxroot->starting_block = s_entry->starting_block;
+ /*
+ * Set the mxroot (mxpart == 0) to allow
+ * the UDF code to fetch the starting
+ * extent number.
+ */
+ set_733((char *) s_entry->mxroot->isorec.extent, s_entry->mxroot->starting_block);
+ for (s_e = s_entry->next;
+ s_e && s_e->mxroot == s_entry->mxroot;
+ s_e = s_e->next) {
+ if (s_e->mxpart == 0)
+ continue;
+ set_733((char *) s_e->isorec.extent, start_extent);
+ start_extent += ISO_BLOCKS(s_e->size);
+ }
+ }
+#endif
#ifdef DVD_VIDEO
/*
* Shouldn't this be done for every type of sort? Otherwise