- Set the System Identifier in the Primary Volume Descriptor to FreeBSD

rather than NetBSD.
- Correctly set the Expiration Time in the Primary Volume Descriptor;
  according to ISO 9660 8.4.26.1 unspecified date and time are denoted
  by the digit 0 in RBP 1 to 16 but the number 0 in RBP 17. [1]
- Merge iso9660_rrip.c rev. 1.11 from NetBSD: name_len should be read
  as unsigned byte. [2]
  Note: This is according to ISO 9660 9.1.10.
- Rock Ridge TF entries should use a length of 5, because after the 4
  bytes of generic SUSP header there is one byte of flags. See typedef
  of ISO_RRIP_TF in iso9660_rrip.h. [1]

Submitted by:	Thomas Schmitt [1]
Obtained from:	NetBSD [2]
MFC after:	3 days
This commit is contained in:
Marius Strobl 2013-07-27 15:28:31 +00:00
parent 8531bb3f0c
commit 1bce1a7401
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=253707
2 changed files with 7 additions and 6 deletions

View File

@ -230,7 +230,7 @@ cd9660_set_defaults(void)
memset(diskStructure.primaryDescriptor.abstract_file_id, 0x20,37);
memset(diskStructure.primaryDescriptor.bibliographic_file_id, 0x20,37);
strcpy(diskStructure.primaryDescriptor.system_id,"NetBSD");
strcpy(diskStructure.primaryDescriptor.system_id, "FreeBSD");
cd9660_defaults_set = 1;
@ -681,7 +681,8 @@ cd9660_finalize_PVD(void)
cd9660_set_date(diskStructure.primaryDescriptor.expiration_date, now);
*/
memset(diskStructure.primaryDescriptor.expiration_date, '0' ,17);
memset(diskStructure.primaryDescriptor.expiration_date, '0', 16);
diskStructure.primaryDescriptor.expiration_date[16] = 0;
cd9660_time_8426(
(unsigned char *)diskStructure.primaryDescriptor.effective_date,
tim);

View File

@ -1,4 +1,4 @@
/* $NetBSD: iso9660_rrip.c,v 1.10 2011/05/29 17:07:58 tsutsui Exp $ */
/* $NetBSD: iso9660_rrip.c,v 1.11 2012/04/29 13:32:21 joerg Exp $ */
/*
* Copyright (c) 2005 Daniel Watt, Walter Deignan, Ryan Gabrys, Alan
@ -419,9 +419,9 @@ cd9660_rrip_initialize_node(cd9660node *node, cd9660node *parent,
}
else if ((node->node != NULL) &&
((strlen(node->node->name) !=
(int)node->isoDirRecord->name_len[0]) ||
(uint8_t)node->isoDirRecord->name_len[0]) ||
(memcmp(node->node->name,node->isoDirRecord->name,
(int) node->isoDirRecord->name_len[0]) != 0))) {
(uint8_t)node->isoDirRecord->name_len[0]) != 0))) {
cd9660_rrip_NM(node);
}
@ -685,7 +685,7 @@ int
cd9660node_rrip_tf(struct ISO_SUSP_ATTRIBUTES *p, fsnode *_node)
{
p->attr.rr_entry.TF.flags[0] = TF_MODIFY | TF_ACCESS | TF_ATTRIBUTES;
p->attr.rr_entry.TF.h.length[0] = 4;
p->attr.rr_entry.TF.h.length[0] = 5;
p->attr.rr_entry.TF.h.version[0] = 1;
/*